Upload
yu-chen-chen
View
281
Download
0
Embed Size (px)
Citation preview
Ruby女孩:
10萬.times { puts "為什麼?" }
Annie Chen
2 6
Who am I ?Annie Chen
Rails Girls Taipei 3rd 學員 Rails Girls Taipei 4th, 5th 教練
Rails ⼯工程師 @ i-True 數學⽼老師
3月 8月7月6月5月4月 9月 10月 11月 12月
第⼀一次成為 RailsGirls
參加LTRT 開始練功
撞牆期 我到底想學什麼?
找專案練習 ⾃自我驗收
RailsGirls 校園推廣
RailsGirls 教練初體驗
A Ruby Week in Japan
iT鐵⼈人賽挑戰 Ruby ⼥女孩
I got a job!
Share ⽇日本⼼心得
In 2014…
這些都是我
Annie 安妮
facebook: @OtiAnn github: @OtiAnn
twitter: @_OtiAnn blog: blog.annideas.com
2014/10/1 ~ 2014/10/30 連續不中斷 分享IT文章
哪時候要⽤用註解?
覺得⼀一個⽉月後的⾃自⼰己 可能會忘記在幹⿇麻的code
寫code測試時暫時註解起來 不讓code真的跑
This time…
有帶電腦來嗎? 今天有些⼩小練習 ⼤大家可以玩玩看
等等連上這裡(⼆二擇⼀一) (1) repl.it (2) tryruby.org
※加上單引號的字串
Ruby會認單引號來當作字串的開始跟結尾
「但是如果字串裡需要出現單引號怎麼辦?」
例如: 安安你好嗎? I’m fine!
Ruby看⾒見的字串只有 ' 安安你好嗎?I '
還有後⾯面的字串開頭 '
這時候執⾏行程式碼 他會以為你還沒打完 執⾏行時沒有效果!
※解決⽅方法
在字串裡的單引號前,加上倒斜線(backslash)來避開
Try it ~!
如果想在字串裡畫 下⾯面這個表情符號
『 o'_'o 』
該怎麼寫呢?
單引號的字串可以跨很多列
如果你字⽐比較多想要分⾏行寫,你可以:
字串裡⾯面被包了奇怪的東⻄西『\n』『\n』是換列字符 如果想要字串裡乾淨⼀一些,可以再派出反斜線
※加上雙引號的字串
⽐比起單引號,雙引號彈性多了! 雙引號最厲害的是 可以在字串裡⾯面插⼊入任意的Ruby運算式 (在Ruby中稱為『字串安插(string interpolation)』) 不過這些運算式,要被放在『 #{ } 』裡⾯面,例如:
還可以先定義⼀一個變數,再把變數放⼊入字串裡⾯面:
但是...覺得很不⽅方便! 當字串裡有出現撇號或引號時 很難直接拿來使⽤用,⼀一直規避就飽了
所以Ruby有兩個語法來⽀支援這種狀況: 『 %q 』與『 %Q 』
%q => 作⽤用跟加上單引號相同; %Q => 作⽤用跟加上雙引號相同!
※加上倒引號的字串
'字串' 、 "字串" 、 `字串`
倒引號『 ` 』 (通常在鍵盤的ESC下⽅方那個按鍵)
『當⽂文字被倒引號( ` )括住時,該⽂文字會被視為⼀一個夾上雙引號( " )的字串實字。該實字會被傳遞給⼀一個名為 Kernel.` 的⽅方法。此⽅方法會將該⽂文字當成作業系統的⼀一個shell命令來執⾏行,並且將命令的輸出當成⼀一個字串傳回。』
引⾃自【Ruby程式設計】p.55
例如:我們在終端機中,如欲看資料夾下的檔案,在Unix系統我們會打『 ls 』,在Windows系統我們會打『 dir 』。這些效果等同於⽤用Ruby寫『 `ls` 』或『 `dir` 』,請看下圖:
※字串的加法
「兩個結果⼀一樣啊?那是差在哪?」
『 + 』在接完字串之後,會回傳⼀一個新的字串物件!
『 << 』是直接更改最左邊的字串,⽽而不會回傳⼀一個新的物件!
?
※字串的乘法
※字串的⽐比⼤大⼩小
數字可以⽐比⼤大⼩小:
※字串的⽐比⼤大⼩小
字串也可以⽐比⼤大⼩小:
?
ASCII
/ˈæski/ ASS-kee American Standard Code for Information Interchange 美國資訊交換標準代碼 是基於拉丁字⺟母的⼀一套電腦編碼系統
http://zh.wikipedia.org/wiki/ASCII
※存取字符與⼦子字符
『String所⽀支援的運算符中最重要的或許是⽅方括號陣列索引運算符 [ ] ,此運算符可⽤用於提取或修改字串中的特定部分。』
※提取字符
?
※修改字符
回憶過去...
http://railsgirls.tw/app/
※字串的⽅方法『.each_char』
分成兩部分來看:
(1) a.each_char => 把a的每⼀一個字元丟到後⾯面的block裡。
(2) {|c| print "-#{c}-"} => 每⼀一個字元到了block裡都叫做c,然後要印出這個字串"-#{c}-"。
Try it ~!
如果, 真的想要
讓每個數字+1
該怎麼做呢?
※字串的⽅方法『 .to_i 』
『 .to_i 』可以讓字串轉成數字
數字也可以轉成字串:『.to_s 』
我們剛剛提到, 希望b="123456789",可以變成"2345678910",可以這麼做:
※陣列(Array)
『陣列是⼀一個由值所構成的序列,允許你透過位置或索引值以循序的⽅方式存取其中的值。Ruby中,陣列的第⼀一個值會被擺在索引值為0的位置上。』
引⾃自【Ruby程式設計】p.67
陣列的簡單範例:
Ruby中陣列的兩⼤大特點:
※特點⼀一:型別未定(untyped)
陣列中的元素並不需要全部屬於相同的類別,所以上⾯面的例⼦子你可以看到,可以放數字、字串、範圍、運算式,也可以數字、字串混搭,甚⾄至在陣列中再加⼊入陣列也可以!
※特點⼆二:可改變(mutable)
可以動態調整陣列的⼤大⼩小,意指可以添加元素。
如果你懶得像剛剛那樣慢慢打出陣列的內容,你也可以使⽤用『%w』或『%W』
※陣列的取值
※⽣生活例⼦子:讓開,讓專業的來!
我媽前陣⼦子⼀一直在猶豫要不要退休,看起來就跟撕花瓣想對⽅方愛不愛我⼀一樣苦惱,為了維護⼤大⾃自然,我們不撕花瓣,我們寫Ruby:
[註2]別忘了變數命名⽅方式,可參考我的第四天⽂文章中的識別字部分
※⽣生活例⼦子:幫我想樂透號碼吧...
還記得,字串有加法...
陣列也可以噢!
還可以這樣加:
⽤用『+』運算符,會建⽴立新的陣列 ⽤用『<<』運算符可以加⼊入既有陣列
除了加法,陣列還有減法喔!
『-』運算符可以從⼀一個陣列中移除所指定的元素
除了加法、減法,陣列也有乘法喔!
數字.to_s
字串.to_i
範圍.to_a
%q,%Q
陣列.sample
%w,%W
+, <<
“#{ }”
Don't compare your beginning to someone else's middle.
- Jon Acuff
To be continued…
Next time…