您的位置:首页 > 移动开发 > Swift

【swift-总结】基础使用

2015-06-20 15:23 537 查看

声明变量与常量

//使用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类型

int类型包含的几乎我们常用的整数,64位平台最大值为9223372036854775807

在32位平台 上Int类型为32位正数

在64位平台 上Int类型为64位正数

上面两点同样适用于无符号类型

浮点数

Double相当于64位的浮点数

Float相当于32位的浮点数

let pi = 3.14;  //swift默认推断位Double类型


整形和浮点型相加

let sum = 2 + 2.14;     //这样不需要强制类型转换
let count = 2;
lei sum = pi + Double(count);       //这中需要强制类型转换


typealias类型同名

相当于C语言中的typedef

typealias Type = UInt16;    //Type就是UInt16这个类型
var TypeMin = Type.min;     //UInt16的最小值


boolean值

swift中的布尔值位true 和 false

OC中的布尔值位YES 和 NO

var flag = true;
flag = false;


Tuples元组

元组是几个任意类型值的组合

例如

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

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); //转换失败


使用if let把可选值绑定

//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, "年龄不符合要求");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: