Java, C#, Swift语法对比速查表

原文: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
实现接口 class 类 implement 接口 { 成员 } class 类 : 接口 { 成员 } class 类 : 接口 { 成员 }
抽象类 abstract abstract N/A
扩展 接口的默认方法 扩展方法 extension
命名空间 package namespace 按module
时间: 2025-01-21 05:42:37

Java, C#, Swift语法对比速查表的相关文章

Android 中的 Effective Java(速查表)

本文讲的是Android 中的 Effective Java(速查表), Effective Java 是一本被广泛认可的著作,它指明了在写 Java 代码时兼顾可维护性与效率的方式.Android 也是使用 Java 来开发的,这意味着前书中的所有建议仍旧可用,真的是这样吗?并不尽然.某些同学 认为书中的"大部分"建议都不适用于 Android 开发,但我认为并不是这样.我承认书中的部分建议确实不适用,因为并非所有 Java 特性都有针对 Android 优化(比如说枚举,序列化等等

确定不收藏?十张机器学习和深度学习工程师必备速查表!

本文讲的是十张机器学习和深度学习工程师必备速查表,对于初学者,机器学习和深度学习课程会很困难,此外各类深度学习库也十分难理解.我在Github上创建了一个本地库(https://github.com/kailashahirwar/cheatsheets-ai ),里面包含了从不同渠道收集的速查表,可以直接下载.尽管拿去用吧,同时欢迎补充完善! 1. Keras Karas是Theano和TensorFlow平台上一款强大易用的深度学习库.它为发展和训练深度学习模型提供高阶神经网络API接口. 来

Vim 快捷键速查表

Vim 编辑器是一个基于命令行的工具,是传奇编辑器 vi 的增强版.尽管图形界面的富文本编辑有很多,但是熟悉 Vim 对于每一位 Linux 的使用者都能有所帮助--无论你是经验丰富的系统管理员,还是刚上手树莓派的新手用户. 这个轻量级的编辑器是个非常强大的工具.在有经验的使用者手中,它能完成不可思议的任务.除了常规的文本编辑功能以外,它还支持一些进阶特性.例如,基于正则表达式的搜索和替换.编码转换,以及语法高亮.代码折叠等的编程特性. 使用 Vim 时有一个非常重要的一点需要注意,那就是按键的

分享下程序员/设计师能用上的 75 份速查表_相关技巧

75 份速查表,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Java.Perl.PHP.Python.Ruby.Ruby on Rails.Scala.C#.SQLite.C++.C语言.Ubuntu.WordPress.Node.js.Oracle.NMAP.Mac OS X.Haskell.Unicode.PostgreSQL.Lisp.Matlab 等. 速查表可能是图片,也可能是 P

用病毒木马进程速查表检查系统

Server 1. 2.exe → Spirit 2000 1.2fixed Sy***plr.exe → 冰河 Intel.exe → 传奇叛逆 Syshelp.exe → 恶邮差病毒 Internet.exe → 传奇幽灵 Sysprot.exe → Satans Back Door Internet.exe → 网络神偷 Sysrunt.exe → Ripper Kernel16.exe → Transmission Scount System.exe → s**tHeap Kernel3

HTML 5标签、属性、事件及兼容性速查表

HTML 5 可以说是近十年来 Web 标准最巨大的飞跃.和以前的版本不同,HTML 5 并非仅仅用来表示 Web 内容,它的使命是将 Web 带入一个成熟的应用平台,在这个平台上,视频,音频,图象,动画,以及同电脑的交互都被标准化.尽管 HTML 5 的实现还有很长的路要走,但 HTML 5 正在改变 Web.为了方便大家学习HTML 5 ,本文与大家分享几份 HTML 5 标签.属性.事件及浏览器兼容性速查表. HTML 5 Cheat Sheet 非常完整的一份HTML 5速查表,包括HT

HTML、CSS和JavaScript速查表

速查表是帮你记住东西的有效工具.Web设计师和开发者经常使用的快捷键简表会使他们在网上的工作效率大大提高. 事实上,速查表就是来帮助我们把日常中最常用到的信息聚集起来,方便使用,使我们做工作时更有效率.有了它们,免去了你的大脑花额外时间去记忆它们的烦恼--你只需要打开简表,马上能查到你想要的信息. 这篇文章里,你可以看到最实用的HTML,CSS,JavaScript速查表,它们可以当作参考资料,备忘录,能帮助你以最快的速度找到想要的信息. 看看这些简表是不是你想要的,请在文章下面留下你的建议,谢

Jquery api 速查表分享

 这篇文章主要给大家分享了一些Jquery api 速查表,十分的全面,这里推荐给大家,需要的朋友可以参考下       选择符 匹配 * 所有元素 #id 带有给定ID的元素 element 给定类型的所有元素,比如说html标签 .class 带有给定类的所有元素 a,b 匹配a或者匹配b的元素 a b 作为a后代的匹配b的元素(包括孙子辈的) a > b 作为a子元素的匹配b的元素(只包括儿子辈) :first 结果集中的第一个元素 :last 结果集中的最后一个元素 :not(a) 结果

CSS常用属性速查表

属性太多,对于我这种不深入WEB的人员,还是有个速查表方便多了,注意利用开头的目录,会不断更新的 CSS 字体属性(Font) 属性 描述 CSS  font 在一个声明中设置所有字体属性. 1  font-family 规定文本的字体系列. 1  font-size 规定文本的字体尺寸. 1  font-size-adjust 为元素规定 aspect 值. 2  font-stretch 收缩或拉伸当前的字体系列. 2  font-style 规定文本的字体样式. 1  font-varia