Swift 学习记录(1)
来源:互联网 发布:android开源app源码 编辑:程序博客网 时间:2024/05/21 00:00
import Foundation/* 1.常量与变量 note:常量的值一旦设定就不能改变,而变量的值可以随意更改。 *///-----声明常量和变量let v1 = 10;//v1 = 9; 错误,常量值不可更改,编译器报错。var v2 = 1;v2 = 2;//正确/* 2.类型标注 note: 1.如果没有指定表达式的类型, 也没有赋予初始值, 编译器会报错 2.指定类型的常量或者变量,不能赋予其他类型的值 3.不指定类型,编译器会进行类型推断 *///-----类型标注let v3:Int;//v3 = " ";错误,不能赋予字符串v3 = 4;//正确var v4:Int;//var v5;错误,没有初始化,也没有指定类型/* 3.输出 (1).避免空行输出 (2).“+”连接字符输出 (3).插值连接字符输出 */var v5 = "abc", v6:Float = 20.12,v7:Boollet const1 = "xyz", const2:Double = 12.34;//terminator: "" 避免输出空行print(const2, terminator: "")print("")var num = 20let name:String = "iMac"let isValue:Bool = true//“+”连接字符,非String类型要先转化为String类型print("num:" + String(num) + " name:" + name + " isValue:" + String(isValue))//插值连接字符let description = "num:\(num) name:\(name) isValue:\(isValue)"print(description)//输出结果:num:20 name:iMac isValue:true
import Foundation/** * 1.整型:有符号和无符号 有符号:Int、Int8、Int16、Int32、Int64。 32位:Int = Int32 64位:Int = Int64 无符号:UInt、UInt8、UInt16、UInt32、UInt64。 32位:UInt = UInt32 64位:UInt = UInt64 */let minIntValue = Int.min;let maxIntValue = Int.max;let minInt8Value = Int8.min;let maxInt8Value = Int8.max;let maxInt1 = INT_MAX;let maxInt2 = Int32.max;print("minIntValue=\(minIntValue),maxIntValue=\(maxIntValue)");print("minInt8Value=\(minInt8Value), maxInt8Value=\(maxInt8Value)")print("maxInt1=\(maxInt1), maxInt2=\(maxInt2)");/** * minIntValue=-9223372036854775808,maxIntValue=9223372036854775807 minInt8Value=-128, maxInt8Value=127 maxInt1=2147483647, maxInt2=2147483647 */let decimalInteger = 17let binaryInteger = 0b10001 // 二进制的17let octalInteger = 0o21 // 八进制的17let hexadecimalInteger = 0x11 // 十六进制的17/** * 2.浮点型 */let value1 = 123.4; // 浮点默认为doublelet value2:Float = 33.2; // floatlet decimalDouble = 12.1875let exponentDouble = 1.21875e1print("decimalDouble=\(decimalDouble), exponentDouble=\(exponentDouble)");// 可读性let value5 = 12_000_000let value6 = 1_000_000.000_000_1;let a = 1_0_0_1/** * 3.布尔型 false、true */var isTrue = truevar isFalse = false/** * 4.数值转换 不同类型的数不能直接相加,要进行类型转换 */let value7:Int32 = 12let value8:Int16 = 12//let value9 = value7 + value8 要类型转换let value9 = value7 + Int32(value8)/** * 5.定义类型别名 swift有很多类型别名,之后会慢慢提到 */typealias NewType = Int32var new_value:NewType = 123
import Foundation/** * 1.字符与字符串 (1).字符与字符串都是用双引号 (2).如果不指定类型,默认为字符串 */let charValue1:Character = Character("a");var charValue2:Character = "上"var strValue1:String = "abcd"let strValue2:String = String("变形金刚5")/** * 2.枚举所有字符 (1).连接字符串可以用"+" */let charCollection = "获取字符串中的每一个字符"for c in charCollection.characters{ print("<\(c)>",terminator: "") //<获><取><字><符><串><中><的><每><一><个><字><符>}print()// 输出字符的unicode编码let strValue3 = "abcd上下左右"for c in strValue3.unicodeScalars{ print("\(c.value) ",terminator: "") //97 98 99 100 19978 19979 24038 21491}print(charCollection+strValue3)/** * 3.字符串之间的比较 直接使用==,>,<进行比较 */var strValueA = "abcd"var strValueB = "abce"if strValueA > strValueB{ print("strValueA > strValueB");}else if strValueA < strValueB{ print("strValueA < strValueB");}else{ print("strValueA = strValueB");}// 大小写转换let lowercaseStr = "abcdefg"let uppercaseStr = lowercaseStr.uppercaseStringprint(uppercaseStr);print(uppercaseStr.lowercaseString)
import Foundation/** * 1.元组常量/变量的定义 */let product1 = (20, "iPhone6", 5888);let product_name = "iPhone7"var product2 = (30, "\(product_name)", 18888)print(product1);print(product2);/** * 2.从元组数据中提取每一个元素的值 */let (id1, name1, price1) = product2print("id1=\(id1), name1 = \(name1), price1=\(price1)")var (id, name, price) = product1;print("id=\(id) name=\(name) price=\(price)");//只取元组中的一个值let (_,name2,_) = product1print("name2=\(name2)")/** * 3.为元组数据中的每一个元素命名 */let product3 = (30, name:"iPhone8", price:5988)print(product3.name)//可选类型//?表示不确定是否有值//!表示确定有值var numStr:String = "123a"var value:Int? = Int(numStr);if value != nil{ print("转换成功")}//“123a”,错误,"123"正确var value1:Int! = Int(numStr);if value1 != nil{ print("转换成功") print(value1);}else{ print("转换失败")// print(value1); 错误}//与OC相比较为特殊的运算符//空合运算符 ??let defaultColorName = "red"var userDefinedColorName: String? //默认值为 nilvar colorNameToUse = userDefinedColorName ?? defaultColorName// userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"userDefinedColorName = "green"colorNameToUse = userDefinedColorName ?? defaultColorName// userDefinedColorName 非空,因此 colorNameToUse 的值为 "green"//区间运算符//闭区间 ...for index in 1...5 { print("\(index) * 5 = \(index * 5)")}// 1 * 5 = 5// 2 * 5 = 10// 3 * 5 = 15// 4 * 5 = 20// 5 * 5 = 25//半开半闭 ..<let names = ["Anna", "Alex", "Brian", "Jack"]let count = names.countfor i in 0..<count { print("第 \(i + 1) 个人叫 \(names[i])")}// 第 1 个人叫 Anna// 第 2 个人叫 Alex// 第 3 个人叫 Brian// 第 4 个人叫 Jack
0 0
- Swift 学习记录(1)
- Swift 学习记录—1
- swift学习记录(开端)
- swift学习记录(Optional)
- swift学习记录(switch)
- swift学习记录(for)
- swift学习记录(func)
- 操作 swift学习记录(-)
- swift学习记录(selector)
- swift学习记录(in)
- swift 学习记录(一)
- swift 学习记录(二)
- swift 学习记录(三)
- swift 学习记录(四)
- swift学习记录(String)
- swift学习记录(函数)
- swift学习记录(枚举)
- swift 学习记录(继承)
- Android布局的高按照比例来分布
- 【USACO题库】1.2.4 Palindromic Squares回文平方数
- 文件保存
- 王学岗ListView和源码解析(三)
- J
- Swift 学习记录(1)
- ora-12541:TNS:无监听程序
- JAVA利用HttpClient进行POST请求(HTTPS)
- C++ typedef的用法
- FastJSON 常用操作
- 随笔面试题
- 第三周 项目4(7)辩数字
- C++复习要点总结之八——继承一
- 数据结构 用单链表表示集合的并交差运算