swift语法和java的比较

Posted 自相矛盾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift语法和java的比较相关的知识,希望对你有一定的参考价值。

1. 定义常量和变量

a. Swift语法

常量:

let MaxNumber = 10

变量:

var name = 1

b. Java语法

常量:

public final int MaxNumber= 10;

变量:

public String name = "morden";

这里要注意的是swift有类型标注(type annotation)这个语法:如果要添加类型标注,需要在常量或者变量名后面加上一个冒号和空格,然后加上类型名称。但是因为swift编译器可以进行类型安全判定,所以一般为了代码简练,

可以不加类型标注,关于类型标注,后面会有提到。加类型标注的语法如下:

常量:

let MaxNumber :Int = 10

变量:

var name : String = "morden"

常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。

 2. Swift和Java的输出语法

Swift:

 print("hello world")

Java

System.out.println("hello world");

3. 注释

Swift和Java注释大体相同,都可以单行注释和多行注释。唯一不同点就是Swift支持多行注释可以嵌套在其它的多行注释中。

/* 这是第一个多行注释的开头
/* 这是第二个被嵌套的多行注释 */
这是第一个多行注释的结尾 */

4. 分号

Java要求每一行代码都有分号,而Swift不同,不要求每一行必须有分号,但是一种情况除外:当在同一行内写多条独立的语句时候,每个语句需要分号隔开

 let apple : String  = "apple" ; print("hello world");

5. 类型标注

类型标注:在Swift中,每次声明常量和变量的时候,不是一定要显式指定类型。如果你没有显式指定类型,Swift 会使用类型推断(type inference)来选择合适的类型。有了类型推断,编译器可以在编译代码的时候自动推断出表达式的类型。Swift 和Java都是一个类型安全(type safe)的语言。如果你申明的变量是String类型的时候,再对其进行赋值时候,传了int类型,编译器会报错。但是在语法上,这两个语言有所不同。

Java一般申明变量时候,会将类型放在前面,如下代码:

String name = "morden";

Swift会将类型放在后面,如下代码:

var name : String = "morden"

而有时候,我们申明变量时候,不加类型,编译器就会自己推断变量类型,这就是类型标注

 在Swift中,具体类型标注代码如下:

let number = 42
number会被推测为 Int 类型
let anotherNumber = 3 + 0.14159

原始值 anotherNumber 没有显式声明类型,而表达式中出现了一个浮点字面量,所以表达式会被推断为Double类型。

6. 数值型字面量

Swift和Java在数值型字面量方面有很多异同,只有十进制和16进制表示是相同的。

Swift:

  • 一个十进制数,没有前缀
  • 一个二进制数,前缀是0b
  • 一个八进制数,前缀是0o
  • 一个十六进制数,前缀是0x

Java: 

  • 一个十进制数,没有前缀
  • 一个二进制数,Java没有二进制的表示方式,一般都16进制表示
  • 一个八进制数,前缀是0
  • 一个十六进制数,前缀是0x

另外,Swift数值类字面量可以包括额外的格式来增强可读性。整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:

let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1

 

 

 

 参考链接:

http://special.csdncms.csdn.net/the-swift-programming-language-in-chinese/Introduction/template/chapter2/01_The_Basics.html

以上是关于swift语法和java的比较的主要内容,如果未能解决你的问题,请参考以下文章

Swift学习笔记——基础语法

Swift和Java控制流比较

比较 Java 的 lambda 表达式和 Swift 的函数类型

Swift和Java关于集合类型的比较

Swift和Java关于字符串和字符的比较

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?