swift 學習筆記一

2021-07-13 15:02:55 字數 3766 閱讀 4037

一:常量和變數

方式1:型別推斷

方式2:型別標註

swift語言有乙個非常強大的功能,就是型別推斷,不需要標註變數的型別,可以根據賦值進行型別自動匹配和推斷

型別標註 是指明變數的型別如int等 這種是非常安全的

//

// main.swift

// ios_swift

//// created by 阿三哥 on 16/6/16.

//import foundation

print("hello, world!")

/* 變數 var 變數名

*/var a=10

print(a)

a=9;

print(a)

/* 常量 let 常量名稱

*/let b=10

print(b)

/* 型別標註 var 變數名稱:變數型別

*/var x:int

x=100;

print(x)

/* 常量宣告必須賦值

*/let y:int=111;

/* 名稱不再符合識別符號的規範

*/var 中國=99999;

print(中國)

二:基本資料型別

var intmax=int.max

print("int max value: \(intmax)")

var intmin=int.min

print("int min value: \(intmin)")

/* 無符號整形 和當前平台的原生字長度相同

*/let minvalue=uint8.min

let maxvalue=uint8.max

print("int min: \(minvalue) int maxvalue: \(maxvalue)")

/* 數字型別字變數

乙個十進位制數,沒有字首

乙個二進位制數,字首是0b

乙個八進位制數,字首是0o

乙個十六進製制數,字首是0x

*/let decimalinteger=17

let binnaryinteger=0b10001

let octalinteger=0o21

let hexadecimalinteger=0x11

print(" ecimalinteger:\(decimalinteger) \n becimalinteger:\(binnaryinteger) \n octalinteger:\(octalinteger) \n hexadecimalinteger:\(hexadecimalinteger)")

/* 指數

*/var i=1e2

print("10 的平方:\(i)")

let twothousand:uint16=2_000;

let one:uint8=1;

let twothousandandone=twothousand+uint16(one)

print("twothousandandone:\(twothousandandone)")

let three=3;

let poinyonefouronefivenine=0.14159

let pi=double(three)+poinyonefouronefivenine;

print("pi:\(pi)")

三:型別推斷和型別安全

swift語言類似於kotlin 能給在不指定資料型別的 根據賦值進行自動推斷型別

swift在推斷浮點值得時候會最終推斷為double

資料型別不一致 進行運算就會提示不能編譯

如整數和浮點數相加 不轉換就會編譯失敗

不存在隱式轉換,必須強轉 型別因此而安全

四:型別轉換

/*

型別轉換 語法:型別(值)

*/var intvar=12.0;

var age=int(intvar)

print("age is:\(age)")

五:bool型別

/*

布林型別 bool true/fase

*/let isman=true;

print("isman:\(isman)")

if(isman)

else

let iswoman=1;

if(iswoman==1)

else

六:元組

/*

元組 將不同型別資料進行組合 (30,"hello")

*/let student=("張三",23,"男")

print("zhangsan:\(student)")

print("zhangsan name:\(student.0)")

print("zhangsan age:\(student.1)")

print("zhangsan ***:\(student.2)")

let student2:(string,int,string)=("李四",24,"女")

print("lisi:\(student2)")

print("lisi name:\(student2.0)")

print("lisi age:\(student2.1)")

print("lisi ***:\(student2.2)")

// 提取元組

let (name1,age1,***1)=student

print("name:\(name1)")

print("age:\(age1)")

print("***:\(***1)")

// 提取部分元素

let (name2,age2,_)=student

print("name2:\(name2)")

print("age2:\(age2)")

let student3=(name:"王五",age:45,***:"男")

print("student3:\(student3)")

print("student3.name:\(student3.name)")

print("student3.age:\(student3.age)")

七:可選型別

/*

可選值:optionals,一種是有值,一種沒有值nil

可選值可以用if語言判斷

*/var optionalvalue :string? = "ok good"

print("optionalvalue:\(optionalvalue)")

/* 可選值 強制解析 使用!符號

當我們對可選值 強制解析 如果可選值沒有值 會引發執行時異常

*/var optionint :int? = 6;

var optionint2:int=optionint!

print("optionint2:\(optionint2)")

// 可選繫結

if var svalue=optionint

八:隱式解析可選

Swift學習筆記一

1.println hello 不需要末尾寫分號了,感覺又回到了石器時代 2.let constant test 1 var variable test 2 let關鍵字定義常量 var關鍵字定義變數,var讓人聯想到解釋型語言了,這種弱型別幾家歡喜幾家愁啊 let variable double ...

swift 學習筆記一

1 將函式作為引數傳遞。例如 寫乙個兩個數求和的函式 performoperation multiply func performoperation operation double,double double func multiply op1 double,op2 double double以上...

swift的學習筆記 一

objective c中的日誌列印 nslog nsstring format,nslog oc 中的日誌資訊 第一行 是列印的格式,列印方法,列印函式.第二行 是在 nsstring format,所輸出的資訊,在日誌中得到的資訊為 oc 中的日誌資訊.objective c中在列印日誌裡增加引數...