Swift第一篇(常量變量字符串數(shù)組)

Swift從頭開始

本文主要用OC/C與Swift進行對比介紹页藻,才疏學(xué)淺背稼,如有不當贰军,還請不吝指教

不管學(xué)習(xí)什么編程語言,第一個程序是什么呢蟹肘?沒錯就是Hello World词疼。那么我們就來感受下Swift到底有多Swift吧:

print("Hello, World!")

嗯,就是這么Swift帘腹。

Swift基本語法

  • let:常量的定義

Swift中用let關(guān)鍵字來聲明一些常量贰盗,一個常量只能賦值一次并且不可改變。打個比方就比如C語言中宏定義一個常量:

#define N 10   

可以用常量來表示那些你只需要設(shè)定一次但卻要使用很多次的值阳欲。在Swift中常量的定義方法如下:

let NUM = 10;

#define宏定義常量的區(qū)別是:let可以在程序中所有可以定義變量的地方來定義常量舵盈。

  • var:變量的定義

我們先來看下C語言中變量的定義:

int index;   // 定義一個整形的index變量
int index = 10; // 定義一個整形的index變量并初始化為10
double height;  // 定義一個double型的height變量
double height = 0.8;  // 定義一個double型的height變量并初始化為0.8

對比下Swift的變量定義:

var index;
var index = 10;
var height;
var height = 0.8;

我們可以看到Swift在定義變量的時候并不用聲明變量的類型陋率,編譯器會根據(jù)所賦的值來自動推斷出變量類型。當然如果你想顯式的指定變量的類型也可以:

var index:Int;
var label:UILabel;
var num:Float = 0.9;

這樣可以顯式的指定你所定義的變量類型秽晚。

  • String:字符串

    • 定義一個字符串(String類型瓦糟,注意不是 NSString):
    let string = "May the force be with you" // 字符串常量
    var string = "May thr force be with you" // 字符串變量
    let string = ""  // 空字符串
    let string = String()   // 空字符串
    
    
    • 連接字符串:
    let string1 = "Hello"
    let string2 = "World"
    let string3 = string1 + string2  // 用+號連接兩個字符串
    let string4 = "\(string1)\(string2)"  // 相當于[NSString stringWithFormat:@"%@%@",string1,string2]這樣的連接方法
    

    另有一種把數(shù)組里的元素連接成字符串的方法:

    let array = ["one","two","three"] // swift中的數(shù)組,接下來會說到
    let string = array.joined(separator: "%") // 用%把數(shù)組里的元素連接起來成為一個字符串赴蝇。
    print(string)  // 輸出為 one%two%three
    

    字符串后面追加內(nèi)容:

    var string = "Hello World"   // 因為字符串要追加內(nèi)容所以用變量
    string.append(" Swift")
    print(string)   // 輸出為Hello World Swift
    
    • 字符串與其他類型的值的連接:
    let number = 2017
    var string = "This year is \(number)"
    print(string)       // 輸出This year is 2017
    
    • 遍歷字符串中的字符:
    for ch in string {
         print(ch)     // ch 是變量名菩浙,同樣不用指定類型
    }
    
    • 判斷字符串是否包含子字符串:
    if string.contains("Tis") {
          print("包含")
    }else{
          print("不包含")
    }
    
    • 字符串格式化:
    let section = 15
    let row = 7
    let newStr = String(format: "Section is %d, Row is %d", arguments: [section,row])
    
  • Array:數(shù)組

swift中數(shù)組類型的定義有兩種方法:

var arr1:Array<String>
var arr2:[String]

需要注意的是:Swift中定義數(shù)組時需要指明數(shù)組中所存儲的數(shù)據(jù)類型,并且數(shù)組中的每一個元素都應(yīng)該是這種類型的句伶。如上所示的兩個數(shù)組中每個元素的類型都應(yīng)是String類型的劲蜻。如果想讓這個數(shù)組可以存儲任何數(shù)據(jù)類型并且每個元素的數(shù)據(jù)類型可以不相同,需要把String換成Any熄阻。

數(shù)組的一些常用操作:

var arr1 = [String]()      // 創(chuàng)建一個空數(shù)組
var arr2 = Array<Any>()   // 創(chuàng)建一個空數(shù)組 (第二種形式)
arr1 = ["1","haha"]
arr2 = [1,"haha"]
var arr3:[Any] = arr1 + arr2  // 連接兩個數(shù)組斋竞,因為arr2是 Any型的,所以兩個數(shù)組連接起來也是Any型
print(arr3)  // 輸出的是兩個數(shù)組連接
arr3.insert(4, at: 0)    // 在數(shù)組的第0個位置插入 4
arr3.insert(contentsOf: ["87","5"], at: 1)  // 在數(shù)組的第1位插入多個元素
arr3.append("nihao")   // 追加一個元素
arr3 += ["想不到吧","還有這種操作"]       // 追加多個元素
arr3.append(contentsOf: ["xixix","lala"])   // 追加多個元素(與上效果相同)
arr3.remove(at: 3)     // 移除第三個元素
arr3.removeFirst()     // 移除首個
arr3.removeLast()      // 移除最后一個
arr3.removeSubrange(1...3)   // 移除范圍內(nèi)的元素 (下標為1-3的)
arr3[1] = "你說"              // 使用下標修改元素
arr3[2...4] = ["第二個","第三個","第四個"] // 修改范圍內(nèi)的元素
print(arr3)
arr3.removeAll()       // 移除全部

遍歷數(shù)組:

for item in arr3{
     print(item)
}

這種遍歷方式只能依次獲取數(shù)組的元素秃殉,不能獲取數(shù)組的下標坝初,Swift3.0以來取消了C語言形式的for循環(huán),所以如果想要獲取數(shù)組的下標及元素钾军,需要用第二種方法遍歷:

for (index,item) in arr3.enumerated() {
      print("第\(index)個元素是\(item)")
}

嗯鳄袍,暫時寫到這里,不足之處自己查吏恭,暫時不再補充拗小。。樱哼。哀九。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市搅幅,隨后出現(xiàn)的幾起案子阅束,更是在濱河造成了極大的恐慌,老刑警劉巖茄唐,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件息裸,死亡現(xiàn)場離奇詭異,居然都是意外死亡沪编,警方通過查閱死者的電腦和手機呼盆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蚁廓,“玉大人访圃,你說我怎么就攤上這事∠嗲叮” “怎么了挽荠?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵克胳,是天一觀的道長。 經(jīng)常有香客問我圈匆,道長,這世上最難降的妖魔是什么捏雌? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任跃赚,我火速辦了婚禮,結(jié)果婚禮上性湿,老公的妹妹穿的比我還像新娘纬傲。我一直安慰自己,他們只是感情好肤频,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布叹括。 她就那樣靜靜地躺著,像睡著了一般宵荒。 火紅的嫁衣襯著肌膚如雪汁雷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天报咳,我揣著相機與錄音侠讯,去河邊找鬼。 笑死暑刃,一個胖子當著我的面吹牛厢漩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岩臣,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼溜嗜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了架谎?” 一聲冷哼從身側(cè)響起炸宵,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狐树,沒想到半個月后焙压,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡抑钟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年涯曲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片在塔。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡幻件,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛔溃,到底是詐尸還是另有隱情绰沥,我是刑警寧澤篱蝇,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站徽曲,受9級特大地震影響零截,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜秃臣,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一涧衙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奥此,春花似錦弧哎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蠢终,卻和暖如春序攘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蜕径。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工两踏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兜喻。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓梦染,卻偏偏與公主長得像,于是被迫代替她去往敵國和親朴皆。 傳聞我的和親對象是個殘疾皇子帕识,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355