Java, C#, Swift語法對比速查表


  Java 8 C# 6 Swift
變量 類型 變量名; 類型 變量名; var 變量名 : 類型;
變量(類型推斷) N/A var 變量名=初值; var 變量名=初值;
常量 final 類型 常量名=初值; readonly 類型 常量名=初值; let 常量名 : 類型=初值;
基本類型

int short long byte
double float
boolean
char

int short long byte
double float
bool
char

Int32 Int16 Int64 Int8
Double Float
Bool
Character

字符串 String 變量名=""; string 變量名=""; let 變量名 : String="";
字符串嵌入值 N/A "\{表達式}" "\(表達式)"
可變字符串 StringBuilder StringBuilder var 變量名 : String;
定常數組 類型[] 變量名={元素1,元素2}; 類型[] 變量名={元素1,元素2}; let 變量名 : 類型名[] = [元素1, 元素2];
變長數組(列表) ArrayList<類型> List<類型> var 變量名=類型名[]();
追加元素 add Add append
遍歷 for (類型 變量 : 集合) foreach (類型 變量 in 集合) for (變量 in 集合)
字典 TreeMap<鍵類型, 值類型> Dictionary<鍵類型, 值類型> Dictionary<鍵類型, 值類型>
字典初始化

TreeMap<鍵類型, 值類型> 變量名 = new TreeMap<鍵類型, 值類型>() {
    {
        put(鍵1, 值1); 
        put(鍵2, 值2); 
    }
};

var 變量名= new Dictionary<鍵類型, 值類型>()
{
    [鍵1] = 值1,
    [鍵2] = 值2,
};

var 變量名 : Dictionary<鍵類型, 值類型>= [
    鍵1 : 值1,
    鍵2 : 值2
];

字典下標 N/A(使用get方法) 變量名[鍵] 變量名[鍵]
定義函數(方法) 返回類型 方法名(參數類型1 形參1, 參數類型2 形參2){} 返回類型 方法名(參數類型1 形參1, 參數類型2 形參2=默認值){} func 函數名(形參1 : 參數類型1, 外參名 形參2 : 參數類型2=默認值) -> 返回類型{}
調用函數(方法) 方法名(實參1, 實參2); 方法名(實參1, 實參2); 函數名(實參1, 外參名 : 實參2);
可變參數 返回類型 方法名(參數類型… 形參){} 返回類型 方法名(params 參數類型[] 形參){} func 函數名(形參 : 參數類型...) -> 返回類型{}
傳出參數 N/A,包在對象里面

返回類型 方法名(ref 參數類型 形參){}
返回類型 方法名(out 參數類型 形參){}

func 函數名(inout 形參 : 參數類型) -> 返回類型{}
調用傳出參數 N/A 實參 &實參
函數類型 N/A,用單方法接口替代 Action和Func系列泛型類 (參數類型1, 參數類型2) –> 返回類型
閉包

(參數類型 形參) -> 表達式


() –> {
   多行語句
}

(參數類型 形參) => 表達式


() =>
{
   多行語句
}

{ (形參: 參數類型) –> 返回類型 in 表達式}


{ () –>() in 
   多行語句
}

枚舉

enum 類型名 {
   枚舉值1(值1), 枚舉值2(值2), 枚舉值3(值3);
}

enum 類型名
{
   枚舉值1=值1,
   枚舉值2=值2,
   枚舉值3=值3
}

enum 類型名 {
   case 枚舉值1=值1, 枚舉值2=值2, 枚舉值3=值3
}

結構(值類型) N/A struct 結構名 { 成員 } struct 結構名 { 成員 }
類(引用類型) class 類名 { 成員 } class 類名 { 成員 } class 類名 { 成員 }
創建對象實例 new 類名(實參1, 實參2) new 類或結構名(實參1, 實參2) 類或結構名(外參名1 : 實參1, 外參名2 : 實參2)
靜態成員 static static 結構和枚舉static,類和接口class
訪問級別

public,公有
protected,保護(包內和子類可訪問)
無修飾符,默認(包內可訪問)
private,私有

public,公有
protected,保護(子類可訪問)
internal,內部(程序集內可訪問)
protected internal,內部保護(程序集內的子類可訪問)
private,私有

public,公有
internal,內部(模塊內可訪問)
private,私有

存儲屬性 N/A,get set前綴方法命名約定 類型 屬性名 { get; set; }=初始值; var 屬性名 : 類型=初始值;
計算屬性 N/A,get set前綴方法命名約定

類型 屬性名
{
   get
   {
   }
   set
   { //形參為value
   }
}

var 屬性名 : 類型 {
   get {
   }
   set(形參) { //如不寫形參名,默認為newValue
   }
}

索引器(下標) N/A

返回類型 this[參數類型 形參]

{
   get
   {
   }
   set
   { //形參為value
   }
}

subscript(形參 : 參數類型) –> 返回類型 {
 get {
}
 set { //形參為newValue
}
}

構造器 類名(參數類型 形參){} 類名(參數類型 形參){} init(形參 : 參數類型){}
自身實例 this this self
調用其它構造器

類名() {
 this(實參);
}

類名() : this(實參)
{
}

init() {
 self.init(外參名 : 實參);
}

繼承 class 派生類 extends 基類 { 成員 } class 派生類 : 基類 { 成員 } class 派生類 : 基類 { 成員 }
調用基類構造器

派生類名(參數類型 參數) {
 super(參數);
}

派生類名(參數類型 參數) : base(參數)
{
}

init(參數 : 參數類型) {
 super.init(外參名 : 參數);
}

虛函數 默認都可覆蓋,不可覆蓋標final virtual可覆蓋 默認都可覆蓋, 不可覆蓋標@final
密封類 final sealed @final
覆蓋(override) 不加修飾,可加@Override override override
調用基類方法 super.方法(); base.方法(); super.方法();
類型檢查 基類實例 instanceof 派生類型 基類實例 is 派生類型 基類實例 is 派生類型
向下轉型

(派生類型)基類實例

(派生類型)基類實例
基類實例 as 派生類型

基類實例 as 派生類型
基類實例 as? 派生類型

接口 interface interface protocol
實現接口 classimplement 接口 { 成員 } class 類 : 接口 { 成員 } class 類 : 接口 { 成員 }
抽象類 abstract abstract N/A
擴展 接口的默認方法 擴展方法 extension
命名空間 package namespace 按module


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM