這兩天不小心看了一下Swift的基礎語法,感覺既然看了,還是寫一下筆記,留個痕跡~總體而言,感覺Swift是一種前後端多種語言混合的產物~~~做為一名.NET陣營人士,少少多多總喜歡通過對比來加深認識。所以做了一個簡單的比較列表,詳情如下... ...
背景:
這兩天不小心看了一下Swift的基礎語法,感覺既然看了,還是寫一下筆記,留個痕跡~
總體而言,感覺Swift是一種前後端多種語言混合的產物~~~
做為一名.NET陣營人士,少少多多總喜歡通過對比來加深認識。
所以做了一個簡單的比較列表。
下麵是基礎語法的比較:
|
Swift |
C#(4.0以上) |
常量定義: |
let name=”cyq.data” |
Const name=”cyq.data”; |
變數定義: 指定類型: |
var name=”cyq.data” var name:String=”cyq” |
var name=”cyq.data”; string name=”cyq”; |
類型轉換: |
var i=3; var s:String=String(i) var s2:Strng=”\(i)” |
var i=3; var s=i.ToString(); var s2=Convert.ToString(i); var s3=(string)I; |
數組定義: |
var lis=[1,3] |
int[] list={1,2}; |
數組遍歷: |
for item in list { } |
foreach (var item in list){ } |
字典定義: |
var dic=[“a”:”v1”,”b”:”v2”] |
var dic = new Dictionary<string, string>(); dic.Add("a","v1"); dic.Add("b", "v2"); |
字典遍歷: |
for (key,value) in dic { var k=key var v=value } |
foreach (var item in dic) { var k= item.Key; var v = item.Value; } |
區間範圍: |
for I in 0…200 { } |
for (int i = 0; i <= 200; i++){ } |
函數定義: |
func getName(a:Int)->Bool |
bool GetName(int a) |
可變參數: |
func getName(a:Int…) ->Bool { } |
bool GetName(params int[] items){ } |
屬性定義: |
var name:String{ get{} set{} } |
string Name { get; set; } |
修飾符: |
public internal private 意思和C#的一致, 預設也是:internal 但沒有Protect |
public internal private protect |
構造函數: |
class MyClass{ init() //都是這個名稱 } |
class MyClass{ MyClass () //和類同名 } |
可選類型: 可空類型 |
var i:Int?=3 取值:i! |
int? i=3; 取值:i.Value |
(基)類參數: |
self、super |
this、base |
枚舉定義: |
enum ABCF:Int { case A=1,B,C case F } enum ABCF{ case A case getName(Int) } 好變態~~~ |
enum ABCF{ A, B=1, C } 只有數字常量,沒有字元或方法 |
擴展屬性: 擴展方法: |
extenstion Int{ var i func toString() } |
public static class XXXx { public static string ToString(this int a) { return a.ToString(); } } |
協議: 介面: |
protocol MAction { } |
public interface IMAction { } |
總結:
Swift 由於是前後端混合的語言,因此,有大部分的語法是一致的:
包括運算符、分支、迴圈、類的繼承等。
還有匿名函數lamda表達式也極相似。
Swift連閉包都有了,也可知道JavaScript的分量也不輕。
涉入太淺,也只能吐這麼點知識了,哈~~