Java, C#, Swift语法对比速查表
| Java 8 | C# 6 | Swift | |
| 变量 | 类型 变量名; | 类型 变量名; | var 变量名 : 类型; |
| 变量(类型推断) | N/A | var 变量名=初值; | var 变量名=初值; |
| 常量 | final 类型 常量名=初值; | readonly 类型 常量名=初值; | let 常量名 : 类型=初值; |
| 基本类型 |
int short long byte |
int short long byte |
Int32 Int16 Int64 Int8 |
| 字符串 | 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<键类型, 值类型>() { |
var 变量名= new Dictionary<键类型, 值类型>() |
var 变量名 : Dictionary<键类型, 值类型>= [ |
| 字典下标 | 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 参数类型 形参){} |
func 函数名(inout 形参 : 参数类型) -> 返回类型{} |
| 调用传出参数 | N/A | 实参 | &实参 |
| 函数类型 | N/A,用单方法接口替代 | Action和Func系列泛型类 | (参数类型1, 参数类型2) –> 返回类型 |
| 闭包 |
(参数类型 形参) -> 表达式 () –> { |
(参数类型 形参) => 表达式 () => |
{ (形参: 参数类型) –> 返回类型 in 表达式} { () –>() in |
| 枚举 |
enum 类型名 { |
enum 类型名 |
enum 类型名 { |
| 结构(值类型) | N/A | struct 结构名 { 成员 } | struct 结构名 { 成员 } |
| 类(引用类型) | class 类名 { 成员 } | class 类名 { 成员 } | class 类名 { 成员 } |
| 创建对象实例 | new 类名(实参1, 实参2) | new 类或结构名(实参1, 实参2) | 类或结构名(外参名1 : 实参1, 外参名2 : 实参2) |
| 静态成员 | static | static | 结构和枚举static,类和接口class |
| 访问级别 |
public,公有 |
public,公有 |
public,公有 |
| 存储属性 | N/A,get set前缀方法命名约定 | 类型 属性名 { get; set; }=初始值; | var 属性名 : 类型=初始值; |
| 计算属性 | N/A,get set前缀方法命名约定 |
类型 属性名 |
var 属性名 : 类型 { |
| 索引器(下标) | N/A |
返回类型 this[参数类型 形参] { |
subscript(形参 : 参数类型) –> 返回类型 { |
| 构造器 | 类名(参数类型 形参){} | 类名(参数类型 形参){} | init(形参 : 参数类型){} |
| 自身实例 | this | this | self |
| 调用其它构造器 |
类名() { |
类名() : this(实参) |
init() { |
| 继承 | class 派生类 extends 基类 { 成员 } | class 派生类 : 基类 { 成员 } | class 派生类 : 基类 { 成员 } |
| 调用基类构造器 |
派生类名(参数类型 参数) { |
派生类名(参数类型 参数) : base(参数) |
init(参数 : 参数类型) { |
| 虚函数 | 默认都可覆盖,不可覆盖标final | 标virtual可覆盖 | 默认都可覆盖, 不可覆盖标@final |
| 密封类 | final | sealed | @final |
| 覆盖(override) | 不加修饰,可加@Override | override | override |
| 调用基类方法 | super.方法(); | base.方法(); | super.方法(); |
| 类型检查 | 基类实例 instanceof 派生类型 | 基类实例 is 派生类型 | 基类实例 is 派生类型 |
| 向下转型 |
(派生类型)基类实例 |
(派生类型)基类实例 |
基类实例 as 派生类型 |
| 接口 | interface | interface | protocol |
| 实现接口 | class 类 implement 接口 { 成员 } | class 类 : 接口 { 成员 } | class 类 : 接口 { 成员 } |
| 抽象类 | abstract | abstract | N/A |
| 扩展 | 接口的默认方法 | 扩展方法 | extension |
| 命名空间 | package | namespace | 按module |
Java, C#, Swift语法对比速查表的更多相关文章
- 【译】Swift 字符串速查表
[译]Swift 字符串速查表 2015-12-18 10:32 编辑: suiling 分类:Swift 来源:CocoaChina翻译活动 10 5585 Swift字符串 招聘信息: iOS高级 ...
- Markdown 语法速查表
Markdown 语法速查表 1 标题与文字格式 标题 # 这是 H1 <一级标题> ## 这是 H2 <二级标题> ###### 这是 H6 <六级标题> 文 ...
- IE各版本CSS Hack(兼容性处理)语法速查表
为了兼容IE各个版本,需要在CSS中添加额外的代码,比如以前常用的_width.之所以工作,是因为浏览器会忽略不能解析的样式规则,因此举个例子来说,把_width写在width下面,对于非IE浏览器会 ...
- GNU Emacs命令速查表
GNU Emacs命令速查表 第一章 Emacs的基本概念 表1-1:Emacs编辑器的主模式 模式 功能 基本模式(fundamental mode) 默认模式,无特殊行为 文本模式(text m ...
- OpenStack 命令行速查表
OpenStack 命令行速查表 updated: 2017-07-18 08:53 Contents 认证 (keystone) 镜像(glance) 计算 (nova) 实例的暂停.挂起.停止 ...
- Tools - 速查表与备忘单(Cheat Sheet)
Cheat Sheets Rico's cheatsheets Cheat-Sheets.org Python Python Cheat sheet Python Programming Cheat ...
- 【转】Vim速查表-帮你提高N倍效率
Vim速查表-帮你提高N倍效率 转自:https://www.jianshu.com/p/6aa2e0e39f99 去年上半年开始全面使用linux进行开发和娱乐了,现在已经回不去windows了. ...
- vim基本命令速查表
来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt ################## ...
- bash基本命令速查表
来源:https://github.com/skywind3000/awesome-cheatsheets/blob/master/languages/bash.sh ################ ...
随机推荐
- object-c 内存管理机制的学习
1.内存的创建和释放 让我们以Object-c世界中最最简单的申请内存方式展开,谈谈关于一个对象的生命周期.首先创建一个对象: //“ClassName”是任何你想写的类名,比如NSString NS ...
- ssh无密登录
ssh登录一般两种方式: 1.密码登录 2.密钥验证无需密码 使用方式:1.生成密钥 2.将公钥追加到authorized_keys中,需要注意的是执行权限需为600,这里因而第一次添加使用的是> ...
- 转: 关于viewport的理解
最近我做了一点儿针对手机的Web开发和相关研究.按说,Web自设计之初,就已经考虑了设备无关性.然而,现实总是不尽如人意. 我们知道大多数网页都是针对桌面显示器开发和测试的,但是手机屏幕通常要比桌面显 ...
- android怎样自定义设置下拉列表样式
图样: 实现方式: 1.水平布局一个TextView和一个ImageView(小黑箭头) 2.实现点击ImageView的单击事件,弹出PopupWindow 3.PopupWindow中实现下拉列表 ...
- ThinkPHP 3.1.2 模板中的变量
一.变量输出 (重点) 1.标量输出 2.数组输出 {$name[1]} {$name['k2']} {$name.k1} 3.对象输出 {$name:k} {$name->k} 二.系统变量 ...
- C++模板:二分图匹配
int Dfs(int k){ for(int i=0;i<v[k].size();i++){ int a=v[k][i]; if(used[a]==0){ used[a]=1; if(link ...
- Memcached源代码分析 - Memcached源代码分析之消息回应(3)
文章列表: <Memcached源代码分析 - Memcached源代码分析之基于Libevent的网络模型(1)> <Memcached源代码分析 - Memcached源代码分析 ...
- Clojure绘制UML
简单介绍 使用Clojure封装了Graphviz的使用.眼下主要实现了UML的绘制 使用 以命令模式的UML为例,演示cdraw的使用 安装Graphviz cdraw是对Graphviz的简单封装 ...
- Intellij IDEA创建Maven Web项目
1前言 在创建项目中,IDEA提供了非常多项目模板,比方Spring MVC模板,能够直接创建一个基于Maven的Spring MVC的demo,各种配置都已经设定好了,直接编译部署就能够使用. 最開 ...
- 面试之hack(转载)
史上最全的CSS hack方式一览 css hack api 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我们会极不情愿的使用这个不太友好的方 ...