一:常量和變數
方式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中在列印日誌裡增加引數...