import Foundation println("Hello, World!") var string1 = "Hello BeiJing" //定义一个变量(字符串) //var string1: String = "Hello, BeiJing" //系统会自动进行类型推断为此表达式 println("string1 = \(string1)") let string2 = "Hello, Everybody" //let定义一个常量 println("string2 = \(string2)") string1 = "Hello" let number1 = 20 //let number1: Int = 20 //在Swift中整形自动推断为Int, 如果系统是32位系统,那么这个整形就是Int32,如果是64位系统,那么就是Int64 let number2: Int8 = 20 //如果我需要一个8位的整形数,那么需要显示的指定位Int8 let number3: Double = 12.0 //在Swift中,浮点型默认是Double let number4: Float = 28.0 //如果需要Float类型,那么需要显示指定 var number = Double(number2) + number3 //Swift中,不支持隐式转换,如果想让两个不同类型的数据进行运算,那么需要显示的转换其类型: 类型名(常量/变量名) let 你好 = "你好" println("你好 = \(你好)") //元组, 从关系型数据库里引出的概念, 关系型数据库里面的每一条记录都相当于一个元组,元组里面的数据可以是不同类型.<pre name="code" class="objc">var request404Error:(Int, String) = (404, "Request Error Message") //定义一个元组, 相当于(Int, String)类型的元组 println("requestCode = \(request404Error.0),requestErrorMessage = \(request404Error.1)") //可以通过下标来取出元组里面的元素,元组的分解 var request404ErrorA = (errorCode: 404, errorMessage: "Request Error Message") //在创建元组的时候, 可以给元祖里面的元素类型名 println("errorCode = \(request404ErrorA.errorCode), errorMessage = \(request404ErrorA.errorMessage)") //数组(Swift中数组元素是同一类型才可以从数组中读取,也就是只能存放同一类型的元素) var names: String[] = ["太一", "嘉儿", "阿和", "阿武"] var name1 = ["美美", "光子郎"] println("names = \(names)") names.append("素娜") //往数组里面添加元素,可以使用append var name = name1 + names //往数组里面添加一个数组, 可以使用"+" println("name = \(name)") println("names = \(names)") names[0] = "亚古兽" //通过下标修改数组里的元素 println("names = \(names)") names.removeAtIndex(0) //删除元素 println("names = \(names)") names.removeLast() println("names = \(names)") //let声明的数组为不可变数组, 不能添加和删除元素 但可以替换 let namesA = ["大辅", "一乘寺贤"] //namesA.removeAtIndex(0) namesA[0] = "阿助" println("namesA = \(namesA)") //var namesB = ["路飞", "索隆", "娜美", 32] //namesB.append("香吉士"))
字典
//字典 在Swift中 要求所有的key是同一类型 所有的value是同一类型 var person: Dictionary<String, String> = ["name":"路飞", "sex":"男"] println("person = \(person)") person["habit"] = "足球" println("person = \(person)") //person["key"] = newValue,如果key已经存在,那么进行的是替换操作 如果key不存在,那么添加了一组键值 person["name"] = "索隆" println("person = \(person)") person.updateValue("娜美", forKey:"name") // println("person = \(person)") let oldValue = person.updateValue("乔巴", forKey:"name") //使用updateValue(value, forKey:key) 进行字典里面元素更新的时候,会返回被替换掉的旧值 println("person = \(person)\n oldValue = \(oldValue)") let personA = ["name":"罗宾", "sex":"女"] //personA["name"] = "luobin" //数组和字典的可变和不可变通过var和let来进行判定,不同的地方是如果数组声明为let, 那么不可以添加和删除元素,但是可以更改.通过let声明的字典,既不可以添加删除,也不可以更改 for name in names{//数组的遍历, for in println("name = \(name)") } //数组的遍历,并且得到相应元素的下标 for (index, name) in enumerate(names){ println("index = \(index), name = \(name)") } //字典的遍历,得到key和value (字典里打印的东西是无序的) for (key, value) in person { println("key = \(key), value = \(value)") }
//控制语句 var isNumber:Bool = true var aNumber = 3 ; var bNumber = 5 // 如果想在一行有多个语句,那么需要用";" 进行分割 //在Swift中, if语句的判断条件只能是Bool类型 if isNumber { println("aNumber = \(aNumber)") } for var i = 0; i < 10; i++ { println("i = \(i)") } for j in 0..9 { // ".."表示的是一个区间,包括左边的值,但是不包括右边的值 println("j = \(j)") } for k in 0..9 { //".."既包括左边的值, 又包括右边的值 println("k = \(k)") }
//switch var a = 11 switch a { case 1: println("a = 1") case 11: println("a = 11") fallthrough // 强制执行下个case语句 default: println("a = other number") } //case语句可以是个范围, 并且这个范围是可以交叉的, 但是只执行第一个满足case条件的语句 switch a { case 1..20 where a == 12: //可以进行双重判定, 使用 where a == 12 println("这是一个个位数") case 11..100: println("这是一个十位数") default: println("其他数字") } var point = (4, 0) switch point { case(0, 0): println("原点") case(let x, 0): //使用(let x, 0) 可以取出元组里面对应位置的元素 println("X轴, x = \(x)") case(0, _): // "_"表示忽略元组里面相应位置的元素 println("Y轴") default: println("象限内") }
Swift基础一(代码)
时间: 2024-10-08 10:55:13