向這個世界打招呼!
# Ruby
print("Hello, World!")
print "Hello, World!"
puts("Hello, World!")
puts "Hello, World!"
p("Hello, World!")
p "Hello, World!"
// Swift
print("Hello, World!")
// Objective-c
NSLog(@"Hello, World!");
- Ruby 的變數不需要特別事先宣告即可直接使用。
- Ruby 的變數本身並沒有型別(Type)。
- Swift 宣告變數時可告知型別,但不寫也可,它會自己猜。
# Ruby
name = "見龍"
age = 18
// Swift
var name = "見龍"
var name:String = "見龍"
var age = 18
var age:Integer = 18
- Ruby:小寫字母或數字 + 底線組合(snake_case)。
- Swift:字母之間使用大寫字母(camelCase)。
# Ruby
student_name = "見龍"
my_age = 18
// Swift
studentName = "見龍"
myAge = 18
# Ruby
name = "見龍"
puts "hello, #{name}"
// Swift
var name = "見龍"
print("hello, \(name)")
- 常數表示值設定之後不可變更(但在 Ruby 世界的常數是可以變更的...)。
- Ruby 的常數「規定」需要是大寫字母開頭, Swift 則沒特別硬性規定。
- Swift 使用
let
語法宣告常數。
# Ruby
Name = "見龍"
Name[1] = "蟲" // Name 常數變成"見蟲",沒事
Age = 18
Age = 20 // 重新指定,只有警告(Warning),但程式仍可執行
// Swift
let name = "見龍"
let age = 18
age = 20 // 壞掉了!
- Ruby 的
gets
方法讀進來的資料都是字串。 - Swift 的
readLine
方法讀進來的是Optional
的字串。
# Ruby
print "請輸入你的名字:"
name = gets
puts "你好, #{name}"
// Swift
print("請輸入你的名字:")
var name = readLine()
print("你好, \(name!)")
- 就是看起來像整數的數字。
- Ruby 的整數是物件(Object)。
- 就是看起來有小數點的數字。
- Ruby 的浮點數是物件(Object)。
# Ruby
my_age = 18 // 把數字 18 指定給 my_age 變數
my_age = 10.2 // 把 my_age 改成一個浮點數,沒事(Ruby 的變數並沒有型別)
// Swift
var my_age:Int = 18 // 宣告了一個整數型態的變數
my_age = 10.2 // 指定一個浮點數,發生錯誤
- 用單引號或雙引號包起來的東西。
- Swift 沒有使用單引號的用法。
- 單引號 v.s 雙引號的差別?
- Ruby 特有風味寫法
%Q
及%q
。
# Ruby
name = "見龍"
name = '見龍'
// Swift
var name = "見龍"
var name = '見龍' // 錯誤
# Ruby
age = 18
puts "my age is" + age # 發生型別錯誤
puts "my age is" + age.to_s # 轉成字串即可相加
puts "my age is #{ age }" # 自動轉成字串
x = "42"
puts x + 10 # 型別錯誤
puts x.to_i + 10 # 轉成整數
// Swift
var age = 18
print("my age is " + age) // 型別錯誤
print("my age is " + String(age)) // 轉成字串型態
var x = "42"
print(x + 10) // 型別錯誤
print(Int(x)! + 10) // 轉成整數
- 注意先乘除、後加減的數學運算規則。
- 整數除以整數還是得到整數:
- 例:10 / 3 得到 3。
- 只要除數或被除數其中一個是浮點數即可。
- Ruby 的算術運算子大多是方法(method),而且可覆寫!
- Ruby 使用
#
做為單行註解,Swift 使用//
做為單行註解。 - 多行註解的用途?
- 使用者輸入名字,例如
sherly
,輸入完按下 Enter 之後,接著在畫面上印出Hello, sherly
字樣。 - 變數交換:假設有
a
跟b
兩個變數,a = 1 而且 b = 2,請試著寫一段程式交換兩個變數的值。 - 使用者輸入直角三角形的寬和高,請在畫面上印出這個三角形的面積。