C#Swift(Swift)与C#的底子语法比较

背景:

这两天不小心看了弹指间斯威夫特(Swift)(Swift)的根底语法,感觉既然看了,依然写一下笔记,留个痕迹~

总体而言,感觉斯威夫特(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 { }

 

总结:

斯维夫特 由于是上下端混合的语言,因此,有大部分的语法是均等的:

概括运算符、分支、循环、类的继续等。

C#,再有匿名函数lamda表达式也极相似。

斯威夫特连闭包都有了,也可清楚JavaScript的份量也不轻。

涉入太浅,也只好吐这么点知识了,哈~~

 

相关文章