Monday, 27 March 2017

Structure



1. Accessing structure and its properties


struct studentMarks {
   var mark1 = 100
   var mark2 = 200
   var mark3 = 300
}
let marks = studentMarks()
print("Mark1 is \(marks.mark1)")
print("Mark2 is \(marks.mark2)")
print("Mark3 is \(marks.mark3)")

Result
Mark1 is 100
Mark2 is 200
Mark3 is 300
 

2. Accessing Structure, passing value, re-initialize

 
 struct MarksStruct {
   var mark: Int

   init(mark: Int) {
      self.mark = mark
   }
}
var aStruct = MarksStruct(mark: 98)
var bStruct = aStruct // aStruct and bStruct are two structs with the same value!
bStruct.mark = 97
print(aStruct.mark) // 98
print(bStruct.mark) // 97

3.

struct markStruct { 
   var mark1: Int
   var mark2: Int
   var mark3: Int

   init(mark1: Int, mark2: Int, mark3: Int) {
      self.mark1 = mark1
      self.mark2 = mark2
      self.mark3 = mark3
   }
}

var marks = markStruct(mark1: 98, mark2: 96, mark3:100)
print(marks.mark1)
print(marks.mark2)
print(marks.mark3)

4. 

struct markStruct { 
   var mark1: Int
   var mark2: Int
   var mark3: Int

   init(mark1: Int, mark2: Int, mark3: Int){
      self.mark1 = mark1
      self.mark2 = mark2
      self.mark3 = mark3
   }
}

var fail = markStruct(mark1: 34, mark2: 42, mark3: 13)

print(fail.mark1)
print(fail.mark2)
print(fail.mark3)

Enumeration



1. Enum with switch Statement


enum names {
   case Swift
   case Closures
    case NotClosure
}
var lang = names.Closures
//var lang = names.Swift
//var lang = names.NotClosure

//lang = .Closures
switch lang {
   case .Swift:
   print("Welcome to Swift")
   case .Closures:
   print("Welcome to Closures")
   default:
   print("Introduction")
}


2. Enum with Associative Value


enum Student {
   case Name(String)
   case Mark(Int,Int,Int)
}
var studDetails = Student.Name("Swift")
var studMarks = Student.Mark(98,97,95)
switch studMarks {
   case .Name(let studName):
      print("Student name is: \(studName).")
   case .Mark(let Mark1, let Mark2, let Mark3):
      print("Student Marks are: \(Mark1),\(Mark2),\(Mark3).")
   default:
      print("Nothing")
}


3. Enum with Raw Value


enum Month: Int {
   case January = 1, February, March, April, May, June, July, August, September, October, November, December
}

let yearMonth = Month.May.rawValue
print("Value of the Month is: \(yearMonth).")

Friday, 17 March 2017

Closure Function




// CLOSURE
//1. SIMPLE CLOSURE
let disp = {print(" Simple closure displaying")}
disp()

// 2. RETURN FROM CLOSURE
let returnName = {
(name : String) -> String in
return name
}

print(returnName("Ram"))

// 3. CLOSURE : MULTIPLE ARGUMENT SINGLE RETURN
let getCalc = {
(x : Int, y : Int) -> Int in
return x+y
}
print(getCalc(15, 35))

// 4. CLOSURE : MULTIPLE ARGUMENT MULTIPLE RETURN
let getValue = {
(i : Int, j : Int) -> (Int,Int) in
return (i,j)
}

print(getValue(55,45))

// 5. CLOSURE : COMPARISON
func ascend(s1: String, s2: String) -> Bool {
   return s1 > s2
}
let stringcmp = ascend(s1 : "swift", s2 : "great")
print (stringcmp)

// 6. CLOSURE : SHORTHAND ARGUMENT
var shorthand: (String, String) -> String
shorthand = { $1 }
print(shorthand("100", "200"))

// 7. CLOSURE : SORTING ARRAY
let numb = [98, -20, -30, 42, 18, 35]
var sortedNumbers = numb.sorted{ (left: Int, right: Int) -> Bool in
   return left < right
}
let asc = numb.sorted()
print(asc)

// 8. 

func calcDecrement(forDecrement total: Int) -> () -> Int {
   var overallDecrement = 100
   func decrementer() -> Int {
      overallDecrement -= total
      print(overallDecrement)
      return overallDecrement
   }
   return decrementer
}
let decrem = calcDecrement(forDecrement: 18)
decrem()
decrem()
decrem()

Wednesday, 8 March 2017

Function - 1 : Basic






// FUNCTION
//1. function with no argument & return type

func showData()
{
print("No return type")
}

 showData()

//2.  function with single argument & no return type
func getSingleArgument(name : String)
{
print(name)
}
getSingleArgument(name : "India")

//3.  function with single argument & return type
func getSingleArgumentReturn(rocket_name : String) -> String
{
return rocket_name
}
print(getSingleArgumentReturn(rocket_name : "PSLV-37"))

//4.  function with multiple argument & single return
func getMultirgumentSingleReturn(i : Int, j : Int ) -> Int
{
return i+j
}
print(getMultirgumentSingleReturn(i : 37, j : 63))

//5.  function with multiple argument & multiple return
func getMultirgumentReturn(i : Int, j : Int ) -> (Int,Int)
{
return (i,j)
}
print(getMultirgumentReturn(i : 37, j : 63))

Sunday, 5 March 2017

Dictionary




var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var someVar = someDict[1]

print( "Value of key = 1 is \(someVar)" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

// 2. UPADTE KEY VALUE DICTIONARY

var oldVal = someDict.updateValue("Divakar", forKey : 1)

var someVar1 = someDict[1]

print( "Old value of key = 1 is \(oldVal)" )
print( "Value of key = 1 is \(someVar1)" )
print( "Value of key = 2 is \(someDict[2])" )

// 3. MODIFY THE EXISTING ELEMENT OF DICTIONARY
var oldVal2 = someDict[1]
someDict[1] = "New value of one"
var someVar2 = someDict[1]

print( "Old value of key = 1 is \(oldVal2)" )
print( "Value of key = 1 is \(someVar2)" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

// 4. remove a key-value pair from a dictionary.
var removedValue = someDict.removeValue(forKey :2)

print( "Value of key = 1 is \(someDict[1])" )
print( "Value of key = 2 is \(someDict[2])" )
print( "Value of key = 3 is \(someDict[3])" )

// 5. ITERATE
for (key, value) in someDict {
   print("Dictionary key \(key) -  Dictionary value \(value)")
}

// 6. separate arrays for both keys and values
let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)

print("Print Dictionary Keys")

for (key) in dictKeys {
   print("\(key)")
}

print("Print Dictionary Values")

for (value) in dictValues {
   print("\(value)")
}

//7. COUNT 
var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]

print("Total items in someDict1 = \(someDict1.count)")
print("Total items in someDict2 = \(someDict2.count)")

// 8. isEmpty
var someDict3:[Int:String] = [Int:String]()

print("someDict1 = \(someDict1.isEmpty)")
print("someDict2 = \(someDict2.isEmpty)")
print("someDict3 = \(someDict3.isEmpty)")

-----------------------------------------------------
9. Passing dictionary from one function to another and get data

CODE </ >
 
 var globalDict = [String:Int]()
func first(){
    let stringsAsInts: [String:Int] = [
    "zero" : 0,
    "one" : 1,
    "two" : 2,
    "three" : 3,
    "four" : 4,
    "five" : 5,
    "six" : 6,
    "seven" : 7,
    "eight" : 8,
    "nine" : 9
]
    globalDict = stringsAsInts
}
func second(){

    first()
//     print(globalDict)
    let zero: Any! = globalDict["zero"] // Optional(0)
print(zero)  
    let one: Int! = globalDict["one"] // Optional(0)
print(one)  
    let two: Int! = globalDict["two"] // Optional(0)
print(two)  
    let nine: Int! = globalDict["nine"] // Optional(0)
print(nine)  
  
}
 second()


 

Array





// ARRAY
// 1.
var arr1 : [Int] = [10,20,30]

var val1 = arr1[0]
print("First value : ", val1)
print("Second value : ", arr1[1])
print("Thirdvalue : ", arr1[2])

// 2. Iterator

for item in arr1{
print(item)
}

// 3. append
print("*********APPEND************")
var arr2 = [Int]() ;
arr2.append(5)
arr2.append(55)
arr2.append(555)
for item in arr2{
print(item)
}

// 4. assigning new value to old
print("***********assigning value on above record**************")
arr2[1] = 999
for item in arr2{
print(item)
}

// 5. adding two array
print("**********ADDING TWO ARRAY************")
var arr3 : [Int] = arr1 + arr2
for item in arr3{
print(item)
}

//6. count
print("*************COUNT PROPERTY*******************")
print("Array size (arr3.count) : \(arr3.count)")

//7. isEmpty

print("*************isEmpty Property***************")
var arr4 = [Int]()
print("arr3 isEmpty : \(arr3.isEmpty)")
print("arr4 isEmpty : \(arr4.isEmpty)")


****************************************************
8. Pass one function array to secind using global array.

CODE </ >

var marksGlobalArray : Array<Int> = []

func first(){
    let marksArray: [Int] = [10, 20, 30, 40, 50]
    for mark in marksArray{
        marksGlobalArray.append(mark)
    }   
}

func second(){
    print(first())
    for a1 in marksGlobalArray{
        print(a1)
    }
}
// CALL
second()


***********************************************************

9.  Sort


var array : [String] = ["Test", "John", "Mike", "Divakar", "Anuj", "Somya"]
or var array : [Int] = [23, 98, 56, 72, 49]
array.sort(by: <) // will sort the array in ascending order
array.sort(by: >) // will sort the array in descending order

// you can also use the sorted method to create a sorted copy
let sortedArray = array.sorted(by: <)

10. Filter

A.

let arr = ["Ram", "Mohan", "Shyam", "John"]
let filtered = arr.filter { $0.contains("am") }
print(filtered)

Output : ["Ram", "Shyam"]
//


B. 


let terms = ["Hello","Bye","Halo"]

var filterdTerms = [String]()


func filterContentForSearchText(searchText: String) {
    filterdTerms = terms.filter { term in
        return term.lowercased().contains(searchText.lowercased())
    }
}

filterContentForSearchText(searchText: "Lo")
print(filterdTerms)



Output : ["Hello", "Halo"]






 

















Wednesday, 1 March 2017

Character






let charA : Character = "A"
let charB : Character = "B"

print("Value of Char A is : \(charA) and value of charB is : \(charB)")

/*
Below code throw error :
1. let chA : Character = "AB"
2. let chB : Character = ""
*/

// now, printing character from string
for ch in "India".characters
{
print(ch)
}

// append value
var varA:String = "Hello "
let varB:Character = "G"

varA.append( varB )

print("Value of varC  =  \(varA)")

// String values can be constructed by passing an array of Character values as an //argument to its initializer:
let catCharacters: [Character] = ["C", "a", "t", "!", "🐱"]
let catString = String(catCharacters)
print(catString)
// Prints "Cat!🐱"