/**
* 1.变量
*/
let count1 = 11;
print(count1);
var count2 = 22;
print(count2);
count2 = 33;
print(count2);
/**
* 2.命名规则
* swift中可以使用几乎任何字符来作为变量和变量名,包
* 括Unicode.但是不能包含数学符号.箭头.无效的unicode.横线-.制
* 表符,且不能以数字开头.
*/
let 啦啦 = "学习IOS";
let 🐶 = "汪";
let cat = "🐼";
print(啦啦,🐶,cat);
/**
* 3.类型别名
* 给Int取一个别名
*/
typealias NSInteger = Int;
var value:NSInteger = 45;
value = 666;
print(value);
/**
* 4.布尔类型
*/
let dogIsAnimation = true;
let animationIsDog = false;
print("狗是动物吗?%@",dogIsAnimation);
print("动物是狗吗%@",animationIsDog);
/**
* 字符串
*/
let label = "the width is";
let width = 62;
var labelWidth = label + String(width);//swift不支持隐式转换,需要显示类型转换;
labelWidth += "!";
print(labelWidth);
/**
* 字符串格式化使用/(item)
*/
let apples = 6;
let oranges = 8;
let appleSumary = "我有\(apples)个苹果";
let fruitSumary = "我有\(apples + oranges)个水果";
print(appleSumary,fruitSumary);
/**
* 数组
*/
let array1:[Int] = [1,2,3]
print(array1);
let array2:[String] = ["4","5","6"];
print(array2);
var array3 = ["7","8","9"];
print(array3);
array3 .append("10");
print(array3);
var array4 = [Int]();
array4.append(11101);
print(array4);
var array5 = Array <String>();
array5.append("正规的写法");
print(array5);
var array6 : [Int];
array6 = [];
array6.append(12);
print("array6 \(array6)");
let array7 = [Int](repeating: 520, count: 5)
for temp in array7 {
print(temp)
}
print(array7)
let array8 = Array(repeating: "成功", count: 5)
print(array8)
/***************************/
// 数组的基本操作
var array_1 = Array<Int>();
array_1=[1,2,3,4,5,6,7];
// 1、 数组元素的访问。下标方法
print(array_1[2]);
// 2、获取数组的个数
print(array_1.count)
// 3、判断 数组 是否包含某个元素
print(array_1.contains(2))
// 4、判断数组是否为空
// 第一中
if array_1.count == 0 {
print("数组为空")
}else{
print("数组不为空")
}
// 第二种
if array_1.isEmpty {
print("数组为空")
}else{
print("数组不为空")
}
//5、修改数组的元素
// 第一种
array_1[2] = 520
print(array_1)
array_1[1...3] = [110 ,119, 121] // 修改 数组 1 -- 3 的元素
print(array_1)
// 6、 数组的遍历
for temp in array_1 {
print(temp)
}
/**
* 字典
*/
let dic1=[1:1,2:12,3:32,4:16,5:15]
let dic2:Dictionary<String,Float>=[:]
let dic3=Dictionary<String,Float>()
let dic4=[String : String]()
print(dic1,dic2,dic3,dic4)
//1 读取字典元素
var test1Dic=["key1":"你好","key2":"Swift","key3":"正在学习","key4":"字典","key5":"取值",]
let test1Str=test1Dic["key2"]
print("\(String(describing: test1Str))")
//此处取字典中未定义的键 不会报错,取出来的值为nil
let test1Str2=test1Dic["key"]
print("\(String(describing: test1Str2))")
//2 获取字典元素的个数
print(test1Dic.count)
//3 增加字典的元素
test1Dic["key"]="test"
print(test1Dic)
//4 删除字典中的元素
test1Dic.removeValue(forKey: "key1")
print(test1Dic)
//5 修改字典中的元素
// 5.1 直接修改
test1Dic["key"]="testkey"
// 5.2 使用 updateValue
let oldStr=test1Dic.updateValue("testkeytest", forKey: "key")
print(oldStr as Any)
print(test1Dic)
//6 遍历
//6.1遍历所有的键值对
for (key,value) in test1Dic{
print("key:\(key) value:\(value)")
}
//6.2 遍历所有的键
for test6Str in test1Dic.keys{
print(test6Str)
}
//6.2 遍历所有的值
for test6Str2 in test1Dic.values{
print(test6Str2)
}
//7 字典转数组
//7.1 将所有的键转为数组
let test7Keys=Array(test1Dic.keys)
print(test7Keys)
//7.1 将所有的值转为数组
let test7Values=Array(test1Dic.values)
print(test7Values)
var dic122=[1:1,2:12,3:32,4:16,5:15]
dic122.updateValue(999, forKey: 2222);
print(dic122);
/**
* 元组可以将任意数据类型组装成一个元素
* 元组在作为函数返回值得时候特别适用,可以为函数返回更多的信息
*/
//元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是:
//元组的长度任意
//元组中的数据可以是不同的数据类型
//元组的定义很简单,用小括号括起来,然后以逗号隔开就可以了,如
let userInfo = ("Bannings" ,true, 22)
let name11 = userInfo.0;
//但是这样并不方便,也不直观,那么可以用下面这种方式来访问:
let (name, isMale, age) = userInfo
print(name,isMale,age,name11);
//把已知的userInfo赋给一个全是变量名组成的新的元组,那么就能以变量名去访问元组中的数据了。
//还有另外一种方法也能以变量名的方式去访问元组中的数据,那就是在元组初始化的时候就给它一个变量名:
let userInfo1 = (name:"Bannings1" ,isMale:true, age:221)
// userInfo1.name //Bannings
// userInfo1.isMale //true
// userInfo1.age //22
print(userInfo1.name,userInfo1.isMale,userInfo1.age);
//可变元组和不可变元组
//用var定义的元组就是可变元组,let定义的就是不可变元组。不管是可变还是不可变元组,元组在创建后就不能对其长度进行增加和删除之类的修改,只有可变元组能在创建之后修改元组中的数据:
var userInfo2 = (name:"Bannings" ,true, age:22)//<span style="white-space:pre"> </span>//定义可变元组
userInfo2.name = "newName"
//newName
print(userInfo2.name);
let userInfo3 = (name:"Bannings" ,true, age:22)//<span style="white-space:pre"> </span>//定义不可变元组
print(userInfo3);
// userInfo1.name = "newName" //报错,不可修改
//需要注意的是,可变元组虽然可以修改数据,但却不能改变其数据的数据类型:
var userInfo4 = (name:"Bannings" ,true, age:22)
// userInfo4.name = 1 //报错
print(userInfo4);
/**
* 可选类型(optional)
*/