import Foundation
// let定义是不可变的
let name="zc"
print(name)
//name="帅哥"
// var定义是可变的
var name1="cpj"
name1="帅哥"
print(name1)
// 在Swift 中会自己推断数据类型(也就是类型推断)
var age=18.0
age=28.0;
var age1=19;
var age2=18.4;
// 只有同一类型才能相加
//age+age1
var name2="jc"
var name3=name1+name2
// 如果是两个参数string类型的 加号就相当于oc中的拼接appending
print(name3)
// Swift 不仅支持英文变量 而且还支持中文和特殊符号变量名
var ��="旺旺"
print(��)
// 定义数组
var array=[12,12,145,14]
// 增 添加数组元素
array.append(13)
array.insert(180, atIndex: 0)
print(array)
// 删
array.removeAtIndex(1)
print(array)
// 改
array[0]=100
print(array)
// 定义空数组
var arr2=Array<String>()
arr2.append("呵呵")
print(arr2)
// 定义空数组 存放任意类型
// 如果是anyobject的数据 那么需要用any的类型来对其进行操作
var arr3=Array<AnyObject>()
arr3.append(19);
arr3.append("hehe")
print(arr3)
let min=arr3[0];
print(min)
let array1=["你好","哦哈呦"]
print(array1)
// 字典
var dict=["key1":"value1","key2":"value2"]
print(dict)
// 增
dict["key3"]="value3";
dict.updateValue("value4", forKey: "key4")
print(dict)
// 改
dict.updateValue("value5", forKey: "key1")
print(dict)
// 删
dict.removeValueForKey("key1");
print(dict)
print("这个字典里面的东西是\(dict)")
// 定义一个空字典
var dict1=Dictionary<String,String>()
// 元组
var yuanZU=(12,34,56,"你好","他好")
print(yuanZU.0)
var yuZu=(name:"江晨",age:"30",height:"180");
print(yuZu.height)
// 如果元祖里面元组个数过多 建议给类型起上自己定义的名字,如果不是很多的话,就用元组自己默认的下标
// 分支语句
// true 在swift中就是真的意思 相当于OC中的YES 假就是false
let bool = true
let bool1=false
if bool{
print("好爽")
}
else{
print("一点也不爽")
}
// 在switch 判断中 不需要写break,如果硬要继续执行下去 要加上fallthough
let 年龄=10
switch 年龄{
case 0:print("小屁孩")
fallthrough
case 10:print("大屁孩")
fallthrough
default:print("成精了")
}
// 在swift只能怪..<相当于半闭半开 ... 相当于闭区间(全部包括)
switch 年龄{
case 0..<10:
print("年轻人")
case 10...100:
print("老年人")
default:
print("成精了")
}
//定义while循环
var temp=5
while temp>0{
print(temp)
temp--
}
// 定义一个for 循环 写++和--的时候 一定要注意后面有空格 前面没有空格
for var i=0;i<10;i++ {
print(i)
}
// 定义for in
var animals=["��","��","��","��","��"]
for a in animals{
print(a)
}
// 字典
var dic=["key1":"value1","key2":"value2","key3":"value3","key4":"value4"]
for(key,value)in dic {
print("\(key),\(value)")
}
//在swift中 _的功能是可以省略你不想要的东西
for(_,value) in dic {
print(value)
}
// 定义一个函数
// 无参无返回值
func test ()->Void{
print("你是谁")
}
test()
// 无参有返回值
func test1()->String{
return "你是谁"
}
var string=test1()
print(string)
// 有参无返回值
func test2(str:String)->Void{
print(str)
}
var str1="你是北京的老肥肥"
test2(str1)
// 有参有返回值
func test3(str:String)->String {
return str
}
var str3="江晨"
print(test3(str3))
// 无参无返回值 简便写法
func test4(){
print("哈哈哈哈")
}
test4()
// 有多个参数的函数
func test5(a:Int ,b:Int)->Int {
return a+b;
}
let a=3
let b=5
// 在swift中 定义函数的时候 第一个参数默认给参数名省略掉 如果硬要加上 那么就自己在第一个参数前面 再加一个前缀名
print(test5(a, b: b))
func test6(inout name:String)->Void {
name = "zichao"
print(name)
}
var name11 = "小子超"
test6(&name11)
// 如果你在定义函数的时候 想让这个参数可以改变值 那么需要在参数前加上inout
// 枚举
enum Season{
case Spring
case Summer
case Autumn
case Winter
}
print(Season.Spring)
enum Season1 :Int {
case Spring = 10
case Summer
}
// 在枚举中 如果你想取出原始值 需要使用rawValue取出
// 通过原始值 (也就是我们自己写的10)来取出我们定义的枚举名
print(Season1.Summer.rawValue)
//在swift中"!" 是代表强制解包
print(Season1(rawValue: 11)!)
// 结构体
struct rect {
// 定义结构体属性
var x:Float
var y:Float
var width :Float
var height:Float
//"?"是可选类型(可选类型并不是 给定的类型是可选的 而是初始值是可选的 也就是说用?修饰 可以不给初始值 但是用!修饰必须要给初始值) 也就是说用问号修饰 可能有值,也有可能没值 可以不在下面赋初值 如果用感叹号修饰 则必须要给它一个初始值
static var child:String?
func text(){
print("\(x),\(y),\(width),\(height)")
}
// 用static 修饰方法之后 相当于OC中的类方法
static func text1(){
print(child!)
}
}
rect.child = "小孩"
rect.text1()
var rect1=rect(x: 10, y: 10, width: 100, height: 100)
rect1.text()
// 这里修改rect 里面的属性值 只能做修改 但是不能保存(也就是说原来rect的属性值没有发生改变)
rect1.x=100;
rect1.text()
Swift 基础知识Part1
最新推荐文章于 2023-05-16 09:54:28 发布