Swift與C#的基礎語法比較

背景:

這兩天不當心看了一下Swift的基礎語法,感受既然看了,仍是寫一下筆記,留個痕跡~後端

整體而言,感受Swift是一種先後端多種語言混合的產物~~~數組

作爲一名.NET陣營人士,少少多多總喜歡經過對比來加深認識。閉包

因此作了一個簡單的比較列表。函數

下面是基礎語法的比較:

 

 

Swiftthis

C#(4.0以上)spa

常量定義:繼承

let name=」cyq.data」接口

Const name=」cyq.data」;ip

變量定義:ci

指定類型:

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的份量也不輕。

涉入太淺,也只能吐這麼點知識了,哈~~

相關文章
相關標籤/搜索