swift基礎(chǔ)-2-常量變量/基本數(shù)據(jù)類(lèi)型/類(lèi)型轉(zhuǎn)換

var 定義變量,設(shè)置之后可以修改
let 定義常量疑务,設(shè)置之后不可以修改
語(yǔ)句末尾不用使用 ;
在 Swift 中使用 print()替代 OC 中的 NSLog,print 的性能更好

C: printf("Hello, World!");
OC:NSLog(@"Hello, World!");
Swift1.2:println("Hello, World!")
Swift2.0:print("Hello, World!")

變量:
OC:
先定義再初始化

int num;
num = 10;

定義的同時(shí)初始化

int num2 = 20;

Swift:
先定義再初始化

var num
報(bào)錯(cuò): 沒(méi)有指定數(shù)據(jù)類(lèi)型(type annotation missing in pattern), 在Swift中如果想要先定義一個(gè)變量, 以后使用時(shí)再初始化必須在定義時(shí)告訴編譯器變量的類(lèi)型(類(lèi)型標(biāo)注)
var num: Int
num = 10

定義的同時(shí)初始化
在Swift中如果定義的同時(shí)初始化一個(gè)變量,可以不用寫(xiě)數(shù)據(jù)類(lèi)型, 編譯器會(huì)根據(jù)初始化的值自動(dòng)推斷出變量的類(lèi)型(其它語(yǔ)言是沒(méi)有類(lèi)型推斷的)
以后在開(kāi)發(fā)中如果在定義的同時(shí)初始化就沒(méi)有必要指定數(shù)據(jù)類(lèi)型, 除非需要明確數(shù)據(jù)類(lèi)型的長(zhǎng)度或者定義時(shí)不初始化才需要指定數(shù)據(jù)類(lèi)型

var num2: Int = 20
var num3 = 20 

你可以用任何你喜歡的字符作為常量和變量名,包括 Unicode 字符
常量與變量名不能包含數(shù)學(xué)符號(hào)行剂,箭頭蹬刷,保留的(或者非法的)Unicode 碼位遥金,連線與制表符可很。
也不能以數(shù)字開(kāi)頭鳄虱,但是可以在常量與變量名的其他地方包含數(shù)字弟塞。
錯(cuò)誤:

var 3x = 10
var x+-3 = 10

正確:

var ?? = 100
var 哈哈 = 300

常量:

OC: const int num = 10;
Swift: let num = 10

錯(cuò)誤:

let num : Int

Swift中的常量必須在定義時(shí)初始化(OC可以不初始化), 否則會(huì)報(bào)錯(cuò)
常量的用途: 某些值以后不需要改變, 例如身份證

let num4 = 10

基本數(shù)據(jù)類(lèi)型
OC:

整型  int intValue = 10;
浮點(diǎn)型 double doubleValue = 10.10; float floatValue = 5.1;
長(zhǎng) long
短 short
有符號(hào) signed
無(wú)符號(hào) unsigned
各種類(lèi)型的數(shù)據(jù)的取值范圍在不同位的編譯器下取值范圍不同

Swift:注意關(guān)鍵字大寫(xiě)

//整型
var intValue:Int = 10
//浮點(diǎn)型
var intValue1:Double = 10.10  // 表示64位浮點(diǎn)數(shù)
var intValue2:Float = 9.9  // 表示32位浮點(diǎn)數(shù)

//如果按照長(zhǎng)度劃分,Swift中的長(zhǎng)短比OC更加精確
var intValue3:Int8 = 6
var intValue4:Int16 = 7
var intValue5:Int32 = 8
var intValue6:Int64 = 9
有符號(hào)無(wú)符號(hào), 默認(rèn)是有符號(hào)的(UInt8/UInt16/UInt32/UInt64)
var uintValue7:UInt = 10
注意: 無(wú)符號(hào)的數(shù)比有符號(hào)的取值范圍更大, 因?yàn)榉?hào)位也用來(lái)存值

Swift是類(lèi)型安全的語(yǔ)言, 如果取值錯(cuò)誤會(huì)直接報(bào)錯(cuò), 而OC不會(huì)(OC支持隱式類(lèi)型轉(zhuǎn)換);Swift不允許隱式類(lèi)型轉(zhuǎn)換, 但可以使用顯示類(lèi)型轉(zhuǎn)換(強(qiáng)制類(lèi)型轉(zhuǎn)換)

取值不對(duì)
OC:unsigned int intValue = -10; 不會(huì)報(bào)錯(cuò)
Swift:var intValue:UInt = -10 會(huì)報(bào)錯(cuò)
溢出:
OC:int intValue = INT_MAX + 1; 不會(huì)報(bào)錯(cuò)
Swift:var intValue:UInt = UInt.max + 1 會(huì)報(bào)錯(cuò)
數(shù)據(jù)類(lèi)型的相互賦值(隱式類(lèi)型轉(zhuǎn)換)
OC可以
int intValue = 10;
double doubleValue = intValue;
double doubleValue = (double)intValue;

Swift:不可以
var intValue:Int = 10
var doubleValue:Double
// error : Cannot convert value of type 'Int' to specified type 'Double'
doubleValue = intValue 
doubleValue = Double(intValue) // correct
在Swift中“值永遠(yuǎn)不會(huì)被隱式轉(zhuǎn)換為其他類(lèi)型”(OC中可以隱式類(lèi)型轉(zhuǎn)換), 以上語(yǔ)句會(huì)報(bào)錯(cuò)
// 注意:Double()并不會(huì)修改intValue的值, 而是通過(guò)intValue的值生成一個(gè)臨時(shí)的值賦值給doubleValue
print(intValue)
print(doubleValue)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拙已,隨后出現(xiàn)的幾起案子决记,更是在濱河造成了極大的恐慌,老刑警劉巖倍踪,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件系宫,死亡現(xiàn)場(chǎng)離奇詭異索昂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)扩借,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)椒惨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人潮罪,你說(shuō)我怎么就攤上這事康谆。” “怎么了嫉到?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵沃暗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我屯碴,道長(zhǎng)描睦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任导而,我火速辦了婚禮,結(jié)果婚禮上隔崎,老公的妹妹穿的比我還像新娘今艺。我一直安慰自己,他們只是感情好爵卒,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布虚缎。 她就那樣靜靜地躺著,像睡著了一般钓株。 火紅的嫁衣襯著肌膚如雪实牡。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,457評(píng)論 1 311
  • 那天轴合,我揣著相機(jī)與錄音创坞,去河邊找鬼。 笑死受葛,一個(gè)胖子當(dāng)著我的面吹牛题涨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播总滩,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼纲堵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了闰渔?” 一聲冷哼從身側(cè)響起席函,我...
    開(kāi)封第一講書(shū)人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冈涧,沒(méi)想到半個(gè)月后茂附,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蝌以,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年何之,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了跟畅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溶推,死狀恐怖徊件,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蒜危,我是刑警寧澤虱痕,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站辐赞,受9級(jí)特大地震影響部翘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜响委,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一新思、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赘风,春花似錦夹囚、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至瞬捕,卻和暖如春鞍历,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肪虎。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工劣砍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笋轨。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓秆剪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親爵政。 傳聞我的和親對(duì)象是個(gè)殘疾皇子仅讽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容