swift基础语法

来源:互联网 发布:域名交易网站 编辑:程序博客网 时间:2024/06/15 13:01

//简单值

//test1

/**

let 定义常量,只能赋值一次,赋值后就不能在赋值

var 定义变量,可以多次赋值

*/

let a = 50;

var b = 40;

b = 30;


//swfit中,创建一个常量或变量时,只提供一个值,不用定义类型,让编译器去判断其类型,若初始化时,没有初始化值(赋值),可以在创建的常量或变量后面加冒号再指定类型,即  let c : Float;

let c : Float;

c = 4.0;

//print(a,b,c);



//test2

/**

类型转换

*/

let a1 = "hello world";

let b1 = 60;

let c1 = a1 +String(b1);

//print(c1);


//将基础属性转换为string类型时,可以将值写在括号中,再在前面加一个反斜杠,即\(基础属性)来实现

let apples = 3;

let oranges = 5;

let string1 = "i have \(apples) apple";

let string2 = "i have \(apples +oranges) apple";

//print(string1 , string2);



//test3

/**

通过[]来创建数组或字典,通过indexkey获取对应的值

*/

var array1 = ["sdhk",2,"3","4","5"];

array1[1] ="dsf";

let array2 = ["432","asd", "g345"];

var dict1 = [

    "1" : "a",

    "2" : "b",

    "3" : b1,

    "4" : a1

];

//print(dict1);


//创建空数组和字典,以及初始化语法。

let array3 = [String]();

let dict2 = [String:Float]();


let minValue = UInt8.min;

let maxValue = UInt8.max;

//print(minValue, maxValue);



//test4

//元组

/**

元组把多个类型组合起来表示

*/

let httpError = (404,"not found", 3.123);

//print(httpError);


/**

可以将一个元组的内容分解成单独的常量和变量,然后正常使用

*/


//let (code, message) = http404Error;

//print(code);

//print(message);


/**

用下划线标记可以忽略不要获取的部分

*/

//let (code, _) = http404Error;

//print(code);


//可以通过下标获取元组中的元素,下标从0开始,类似数组

//print(httpError.0);


//可以给元组中单个元素命名,通过命名获取相应的元素,类似字典

let http200Status = (code : 200 , description : "success");

//print(http200Status.code);



//test5

//可选 optionals

let stringNumber = "123";

let number = Int(stringNumber);

//print(number);




//test6

//if语句及强制解析

/**

当确定可选包确实含值之后,你可以在可选的名字后面加一个感叹号!来获取值,被称为可选值的强制解析

使用!来获取一个不存在的可选值会导致运行时错误,使用!来强制解析值之前,一定要确定可选包含一个非nil的值

*/

if number ==123 {

    print(stringNumber,number!);

}else{

    print(stringNumber);

}



//test7

//可选绑定optional binding

/**

如果stringNumber可以转换为int类型,if的判断就是true,反之false

*/

if let OBnumber =Int(stringNumber) {

    print("\(stringNumber)可以绑定");

}else{

    print("不可绑定");

}



//test8

//nil

/**

可以给可选变量赋值为nil来表示没有值

nil不能用于非可选的常量和变量,如果出现常量或变量处理值缺失的情况,需要将它们声明成对应的可选类型

如果声明一个可选常量或变量但是没有赋值,它们会自动被设置未nil;


OCnil是一个指向不存在对象的指针

swiftnil不是指针,是一个确定的值,表示值缺失,任何类型的可选都可以被设置为nil,不只是对象类型

*/

var code1 : Int? =404;

//print(code1);

code1 = nil;

//print(code1);

var code2 : Int?;

//print(code2);



//test9

//隐式解析可选

let string3 : String? ="hvsdk";

print(string3!);


let string4 : String! ="dsfsd";

print(string4);


if string4 !=nil {

    print(string4);

}



//test10

//断言

let age = -3;

//assert(age == 0);



//test11

//基础运算符

let (x,y) = (1,2);

print(x,y);


//加法运算也用于string的拼接

let string5 = "123";

let string6 = "456";

let string7 = string5 +string6;

print(string7);


//求余运算

print(-9 % 4);


//闭区间运算符

/**

闭区间运算符(a...b)定义一个包含从ab(包括ab)的所有值的区间

闭区间运算符在迭代一个区间的所有值时是非常有用的

*/

for index in1...5 {

    print("\(index) * 5 =\(index * 5)");

}


//半闭区间

/**

半闭区间(a..<b)定义一个从ab但不包括b的区间,之所以称为半闭区间,是因为该区间包含第一个值而不包含最后的值

半闭区间的实用性在于当你使用一个0始的列表(如数组)时,非常方便的从0数到列表的长度

*/

let names = ["Anna","Alex", "Brian","Jack"];

for i in 0 ..< names.count {

    print(names[i]);

}







0 0
原创粉丝点击