zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    OSX安装nginx和rtmp模块(rtmp直播服务器搭建)
    用runtime来重写Coder和deCode方法 归档解档的时候使用
    Homebrew安装卸载
    Cannot create a new pixel buffer adaptor with an asset writer input that has already started writing'
    OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播
    让nginx支持HLS
    iOS 字典转json字符串
    iOS 七牛多张图片上传
    iOS9UICollectionView自定义布局modifying attributes returned by UICollectionViewFlowLayout without copying them
    Xcode6 iOS7模拟器和Xcode7 iOS8模拟器离线下载
  • 原文地址:https://www.cnblogs.com/clockdotnet/p/4263922.html
Copyright © 2011-2022 走看看