Skip to content

Latest commit

 

History

History
207 lines (157 loc) · 4.18 KB

File metadata and controls

207 lines (157 loc) · 4.18 KB

輸入、輸出

輸出(Output)

向這個世界打招呼!

# 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!");

變數(Variable)

  • Ruby 的變數不需要特別事先宣告即可直接使用。
  • Ruby 的變數本身並沒有型別(Type)。
  • Swift 宣告變數時可告知型別,但不寫也可,它會自己猜。
# Ruby
name = "見龍"
age = 18
// Swift
var name = "見龍"
var name:String = "見龍"

var age = 18
var age:Integer = 18

命名慣例(Naming Convention)

  • Ruby:小寫字母或數字 + 底線組合(snake_case)。
  • Swift:字母之間使用大寫字母(camelCase)。
# Ruby
student_name = "見龍"
my_age = 18
// Swift
studentName = "見龍"
myAge = 18

字串安插(String Interpolation)

# Ruby
name = "見龍"
puts "hello, #{name}"
// Swift
var name = "見龍"
print("hello, \(name)")

常數(Constant)

  • 常數表示值設定之後不可變更(但在 Ruby 世界的常數是可以變更的...)。
  • Ruby 的常數「規定」需要是大寫字母開頭, Swift 則沒特別硬性規定。
  • Swift 使用 let 語法宣告常數。
# Ruby
Name = "見龍"
Name[1] = "蟲"       // Name 常數變成"見蟲",沒事

Age = 18
Age = 20             // 重新指定,只有警告(Warning),但程式仍可執行
// Swift
let name = "見龍"
let age = 18
age = 20             // 壞掉了!

輸入(Input)

  • Ruby 的 gets 方法讀進來的資料都是字串。
  • Swift 的 readLine 方法讀進來的是 Optional 的字串。
# Ruby
print "請輸入你的名字:"
name = gets
puts "你好, #{name}"
// Swift
print("請輸入你的名字:")
var name = readLine()
print("你好, \(name!)")

資料型別(Data Type)

整數(Integer)

  • 就是看起來像整數的數字。
  • Ruby 的整數是物件(Object)。

浮點數(Float)

  • 就是看起來有小數點的數字。
  • 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           // 指定一個浮點數,發生錯誤

字串(String)

  • 用單引號或雙引號包起來的東西。
  • Swift 沒有使用單引號的用法。
  • 單引號 v.s 雙引號的差別?
  • Ruby 特有風味寫法 %Q%q
# Ruby
name = "見龍"
name = '見龍'
// Swift
var name = "見龍"
var name = '見龍'   // 錯誤

轉型(Casting)

# 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 使用 // 做為單行註解。
  • 多行註解的用途?

練習題:

  1. 使用者輸入名字,例如 sherly,輸入完按下 Enter 之後,接著在畫面上印出 Hello, sherly 字樣。
  2. 變數交換:假設有 ab 兩個變數,a = 1 而且 b = 2,請試著寫一段程式交換兩個變數的值。
  3. 使用者輸入直角三角形的寬和高,請在畫面上印出這個三角形的面積。