63
Ruby女孩: 10萬.times { puts "為什麼?" } Annie Chen 2 6

Ruby女孩2/6

Embed Size (px)

Citation preview

Page 1: Ruby女孩2/6

Ruby女孩:

10萬.times { puts "為什麼?" }

Annie Chen

2 6

Page 2: Ruby女孩2/6

Who am I ?Annie Chen

Rails Girls Taipei 3rd 學員 Rails Girls Taipei 4th, 5th 教練

Rails ⼯工程師 @ i-True 數學⽼老師

Page 3: Ruby女孩2/6

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…

Page 4: Ruby女孩2/6

這些都是我

Annie 安妮

facebook: @OtiAnn github: @OtiAnn

twitter: @_OtiAnn blog: blog.annideas.com

Page 5: Ruby女孩2/6

2014/10/1 ~ 2014/10/30 連續不中斷 分享IT文章

Page 6: Ruby女孩2/6
Page 7: Ruby女孩2/6

http://blog.annideas.com/ironman7

My 30 Days…

Page 8: Ruby女孩2/6

前情提要

http://www.slideshare.net/AnnieChen51/ruby16

Page 9: Ruby女孩2/6

哪時候要⽤用註解?

覺得⼀一個⽉月後的⾃自⼰己 可能會忘記在幹⿇麻的code

寫code測試時暫時註解起來 不讓code真的跑

Page 10: Ruby女孩2/6

前情提要

http://www.slideshare.net/AnnieChen51/ruby16

Page 11: Ruby女孩2/6

This time…

Page 12: Ruby女孩2/6

有帶電腦來嗎? 今天有些⼩小練習 ⼤大家可以玩玩看

等等連上這裡(⼆二擇⼀一) (1) repl.it (2) tryruby.org

Page 13: Ruby女孩2/6

Ruby⼥女孩(6): Ruby的"-字-字-字-字-字-"

圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT

Page 14: Ruby女孩2/6

※加上單引號的字串

Ruby會認單引號來當作字串的開始跟結尾

Page 15: Ruby女孩2/6

「但是如果字串裡需要出現單引號怎麼辦?」

例如: 安安你好嗎? I’m fine!

Page 16: Ruby女孩2/6

Ruby看⾒見的字串只有 ' 安安你好嗎?I '

還有後⾯面的字串開頭 '

這時候執⾏行程式碼 他會以為你還沒打完 執⾏行時沒有效果!

Page 17: Ruby女孩2/6

※解決⽅方法

在字串裡的單引號前,加上倒斜線(backslash)來避開

Page 18: Ruby女孩2/6

Try it ~!

如果想在字串裡畫 下⾯面這個表情符號

『 o'_'o 』

該怎麼寫呢?

Page 19: Ruby女孩2/6

單引號的字串可以跨很多列

如果你字⽐比較多想要分⾏行寫,你可以:

字串裡⾯面被包了奇怪的東⻄西『\n』『\n』是換列字符 如果想要字串裡乾淨⼀一些,可以再派出反斜線

Page 20: Ruby女孩2/6

※加上雙引號的字串

⽐比起單引號,雙引號彈性多了! 雙引號最厲害的是 可以在字串裡⾯面插⼊入任意的Ruby運算式 (在Ruby中稱為『字串安插(string interpolation)』) 不過這些運算式,要被放在『 #{ } 』裡⾯面,例如:

Page 21: Ruby女孩2/6

還可以先定義⼀一個變數,再把變數放⼊入字串裡⾯面:

Page 22: Ruby女孩2/6

但是...覺得很不⽅方便! 當字串裡有出現撇號或引號時 很難直接拿來使⽤用,⼀一直規避就飽了

所以Ruby有兩個語法來⽀支援這種狀況: 『 %q 』與『 %Q 』

%q => 作⽤用跟加上單引號相同; %Q => 作⽤用跟加上雙引號相同!

Page 23: Ruby女孩2/6
Page 24: Ruby女孩2/6

※加上倒引號的字串

'字串' 、 "字串" 、 `字串`

倒引號『 ` 』 (通常在鍵盤的ESC下⽅方那個按鍵)

Page 25: Ruby女孩2/6

『當⽂文字被倒引號( ` )括住時,該⽂文字會被視為⼀一個夾上雙引號( " )的字串實字。該實字會被傳遞給⼀一個名為 Kernel.` 的⽅方法。此⽅方法會將該⽂文字當成作業系統的⼀一個shell命令來執⾏行,並且將命令的輸出當成⼀一個字串傳回。』

引⾃自【Ruby程式設計】p.55

Page 26: Ruby女孩2/6

例如:我們在終端機中,如欲看資料夾下的檔案,在Unix系統我們會打『 ls 』,在Windows系統我們會打『 dir 』。這些效果等同於⽤用Ruby寫『 `ls` 』或『 `dir` 』,請看下圖:

Page 27: Ruby女孩2/6

Ruby⼥女孩(7): 原來字串也可以⽐比⼤大⼩小?

圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT

Page 28: Ruby女孩2/6

※字串的加法

「兩個結果⼀一樣啊?那是差在哪?」

Page 29: Ruby女孩2/6

『 + 』在接完字串之後,會回傳⼀一個新的字串物件!

『 << 』是直接更改最左邊的字串,⽽而不會回傳⼀一個新的物件!

?

Page 30: Ruby女孩2/6

※字串的乘法

Page 31: Ruby女孩2/6

※字串的⽐比⼤大⼩小

數字可以⽐比⼤大⼩小:

Page 32: Ruby女孩2/6

※字串的⽐比⼤大⼩小

字串也可以⽐比⼤大⼩小:

?

Page 33: Ruby女孩2/6

ASCII

/ˈæski/ ASS-kee American Standard Code for Information Interchange 美國資訊交換標準代碼 是基於拉丁字⺟母的⼀一套電腦編碼系統

http://zh.wikipedia.org/wiki/ASCII

Page 34: Ruby女孩2/6

※存取字符與⼦子字符

『String所⽀支援的運算符中最重要的或許是⽅方括號陣列索引運算符 [ ] ,此運算符可⽤用於提取或修改字串中的特定部分。』

Page 35: Ruby女孩2/6

※提取字符

?

Page 36: Ruby女孩2/6

※修改字符

Page 37: Ruby女孩2/6

Ruby⼥女孩(8): 字串迭代⼩小練習!

圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT

Page 38: Ruby女孩2/6

回憶過去...

http://railsgirls.tw/app/

Page 39: Ruby女孩2/6

※字串的⽅方法『.each_char』

分成兩部分來看:

(1) a.each_char => 把a的每⼀一個字元丟到後⾯面的block裡。

(2) {|c| print "-#{c}-"} => 每⼀一個字元到了block裡都叫做c,然後要印出這個字串"-#{c}-"。

Page 40: Ruby女孩2/6

Try it ~!

Page 41: Ruby女孩2/6
Page 42: Ruby女孩2/6

如果, 真的想要

讓每個數字+1

該怎麼做呢?

Page 43: Ruby女孩2/6

※字串的⽅方法『 .to_i 』

『 .to_i 』可以讓字串轉成數字

Page 44: Ruby女孩2/6

數字也可以轉成字串:『.to_s 』

Page 45: Ruby女孩2/6

我們剛剛提到, 希望b="123456789",可以變成"2345678910",可以這麼做:

Page 46: Ruby女孩2/6

Ruby⼥女孩(9): ⽼老媽,你不能決定, 讓我⽤用紅寶⽯石的陣列 幫你決定吧!

圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT

Page 47: Ruby女孩2/6

※陣列(Array)

『陣列是⼀一個由值所構成的序列,允許你透過位置或索引值以循序的⽅方式存取其中的值。Ruby中,陣列的第⼀一個值會被擺在索引值為0的位置上。』

引⾃自【Ruby程式設計】p.67

陣列的簡單範例:

Page 48: Ruby女孩2/6

Ruby中陣列的兩⼤大特點:

※特點⼀一:型別未定(untyped)

陣列中的元素並不需要全部屬於相同的類別,所以上⾯面的例⼦子你可以看到,可以放數字、字串、範圍、運算式,也可以數字、字串混搭,甚⾄至在陣列中再加⼊入陣列也可以!

※特點⼆二:可改變(mutable)

可以動態調整陣列的⼤大⼩小,意指可以添加元素。

Page 49: Ruby女孩2/6

如果你懶得像剛剛那樣慢慢打出陣列的內容,你也可以使⽤用『%w』或『%W』

Page 50: Ruby女孩2/6

※陣列的取值

Page 51: Ruby女孩2/6

※⽣生活例⼦子:讓開,讓專業的來!

我媽前陣⼦子⼀一直在猶豫要不要退休,看起來就跟撕花瓣想對⽅方愛不愛我⼀一樣苦惱,為了維護⼤大⾃自然,我們不撕花瓣,我們寫Ruby:

[註2]別忘了變數命名⽅方式,可參考我的第四天⽂文章中的識別字部分

Page 52: Ruby女孩2/6

※⽣生活例⼦子:幫我想樂透號碼吧...

Page 53: Ruby女孩2/6

Ruby⼥女孩(10): ["⼗十年","好姐妹","陣列萬歲"]

圖⽚片出⾃自:⽇日本⼈人⼒力公司 リクナビ NEXT

Page 54: Ruby女孩2/6

還記得,字串有加法...

陣列也可以噢!

Page 55: Ruby女孩2/6

還可以這樣加:

⽤用『+』運算符,會建⽴立新的陣列 ⽤用『<<』運算符可以加⼊入既有陣列

Page 56: Ruby女孩2/6

除了加法,陣列還有減法喔!

『-』運算符可以從⼀一個陣列中移除所指定的元素

Page 57: Ruby女孩2/6

除了加法、減法,陣列也有乘法喔!

Page 58: Ruby女孩2/6

數字.to_s

字串.to_i

範圍.to_a

%q,%Q

陣列.sample

%w,%W

+, <<

“#{ }”

Page 59: Ruby女孩2/6

Don't compare your beginning to someone else's middle.

- Jon Acuff

Page 60: Ruby女孩2/6
Page 61: Ruby女孩2/6

To be continued…

Page 62: Ruby女孩2/6

Next time…

Page 63: Ruby女孩2/6