标签:
//使用var声明一个变量
var str = "Hello, playground"
str = "Hello world";
//使用let声明一个常量
let str1 = "我是帅哥";
str1 = "我不是帅哥"; //这句话会报错
let name = "我是帅哥"; //声明一个常量,类型自动推断为String类型
var age:Int = 20; //声明一个变量指定好类型
//在swift1中是println在swift2.0以后一律改为print了
print("我说过一句话\(name)");
print("我的年龄是\(age)");
swift提供了有符号和无符号的8位,16位,32位和64位的类型
let minValue = UInt8.min; //获取无符号的8位整形的最小值
let macValue = UInt8.max; //获取无符号的8位整形的最大值
int类型包含的几乎我们常用的整数,64位平台最大值为9223372036854775807
上面两点同样适用于无符号类型
let pi = 3.14; //swift默认推断位Double类型
let sum = 2 + 2.14; //这样不需要强制类型转换
let count = 2;
lei sum = pi + Double(count); //这中需要强制类型转换
相当于C语言中的typedef
typealias Type = UInt16; //Type就是UInt16这个类型
var TypeMin = Type.min; //UInt16的最小值
swift中的布尔值位true 和 false
OC中的布尔值位YES 和 NO
var flag = true;
flag = false;
元组是几个任意类型值的组合
例如
let myTuples = (20, "沸沸腾"); //myTuples就是一个二元元组,20的序号为0,"沸沸腾"为1
let myTuples1 = (20, "沸沸腾","大帅哥");//这个就是一个三元组
//使用序号访问
print("我的年龄是\(myTuples.0)"); //我的年龄是20\n
//将这个元组赋值给另一个元组接收
let (myName, myAge) = myTuples;
print("my name is \(myName)");
//如果只是需要元组中的某些值可以使用下面这个方法
let (age1, _) = myTuples;
print("my age is \(age1)");
也可以使用下面这种方法声明和使用
let myInfo = (name: "沸沸腾", age: 22);
print("my name is \(myInfo.name), my age is \(myInfo.age)");
optional可能是一个值,也可能不是一个值,当不是一个值的时候就为nil,在swift中nil就是一个确定的类型,并不是指针
var myStr: String?; //myStr就是nil
var myStr: String; //myStr什么都不是
myStr = "1234";
var num = Int(myStr); //被推断为1234,位Int?类型
var myStr1 = "hell"
var num1 = Int(myStr1); //转换失败
//num是一个可选值
if let constNum = num {
print("num 有值 为\(constNum)");//num被成功转为正数
} else {
print("num 没有 值");
}
//如果num有值,num1有值
if let constNum = num, constNum1 = num1 {
print("num 有值 为\(constNum)");
} else {
print("num 没有 值");
}
隐式解析可选主要用于类的构造过程中
隐式可选其实就是一个普通的可选,但是也可以当做普通类型使用
普通可选访问值
var myStr = "1234";
var num:Int? = Int(myStr);
print("\(num!)"); //得到1234
print("\(num)"); //得到optional(1234);
var myStr1 = "hell"
var num1: Int? = Int(myStr1);
print("\(num1!)"); //报错,因为没有值可以解析
print("\(num1)"); //nil
隐式可选访问值
var myStr = "1234";
var num:Int! = Int(myStr);
print("\(num!)"); //1234
print("\(num)"); //1234
var myStr1 = "hell"
var num1: Int! = Int(myStr1);
print("\(num1)"); //nil
print("\(num1!)"); //报错
使用 try catch语句 或者 throw exception
断言就是保证值是要求的,不然就会报错
使用情况:当你的值必须是正确的时候才能保证程序运行,那么使用断言就可以保证值的正确性
let age = -3;
assert(age >= 0, "年龄不符合要求");
标签:
原文地址:http://blog.csdn.net/ttf1993/article/details/46573799