美文网首页Ruby & Rails程序员Ruby
02.Ruby學習分享之數字和文本

02.Ruby學習分享之數字和文本

作者: 清水川崎 | 来源:发表于2017-03-23 20:19 被阅读68次

    由於Ruby是一門完全面向對象的編程語言,所以它的所有類型都是基於Object,包括數字也算。


    下面來介紹以下數字的常用方法

    Ruby聲明變量是不需要聲明變量的類型的!Ruby這一特性並不奇怪,Swift也有用到,這種特性叫做鴨子類型(Dock Type)。意思是凡是只要滿足鴨子大部分行為的都是鴨子,比如只要是水裡游的、天上飛的都是屬於鴨子!

    聲明一個叫a的變量(注:Ruby中的注釋用#,打印可以使用put,put帶自動換行,也可以簡寫為p,print也可以但是不會自動換行)

    a=3

    # 打印數字的類型

    p a.class

    (注:Ruby中帶?的方法都會返回一個bool值。true或者false)

    #判斷一個數是否為偶數

    p a.even?

    #  判斷一個數是不是奇數

    pa.odd?

    #  把一個數字轉換為字符串

    b=a.to_s

    p b

    #  重複多遍做某件事情

    (注:這裡的times其實是指迭代器,以後我的文章會提到!{}內為block代碼塊)

    3.times {p'love!'}

    #  保留小數位數,括號內填寫保留小數的位數

    p 4.3546457.round(2)


    接下來說下字符串相關的一些方法

    字符串定義很簡單,比如下面這樣

    a = 'abc'

    b = "abc"

    單引號和雙引號都可以聲明字符串,單引號的運行效率比雙引號高,雙引號比單引號可以做插值操作。

    c='something'

    p "do#{c}"

    Ruby中的字符串也和C語言一樣,也可以看作字符數組。比如我們對其做下列操作

    a = 'asdf'

    a[0]  = 'b'

    p a

    在Ruby中打印某些符號需要使用\來轉譯

    p"aaaa\'ssss\'"

    實際運行效果如下

    "sdff''sdf'sdgf"

    定義字符串的話還可以使用下面兩種

    p%q(sdff''sdf'sdgf)

    p%Q(sdff''sdf'sdgf)

    %q和%Q都不需要轉譯符號, %q對應單引號字符串,而Q對應雙引號字符串

    定義多行字符串,Ruby還有專用方法

    p <<-UD

    sdfgsdgdfhfgjghkgshfcijasdhfkdshf

    UD

    -UD和UD可以替換為任意字母,不過前後必須保持一致才行,而<<可以看作追加,下面的數組介紹篇,我會提到。

    Ruby中有一些方法方法名前面都一致,但是有的帶!號,有的不帶,區別在於,帶!的方法屬於危險方法,也就是說會改變變量本身的值。

    #  翻轉字符串

    p c.reverse

    Ruby在調用方法的時候可以使用()也可以不使用,比如下面的

    #  判斷字符串是否包含一個字符

    p c.include? 's'     

    p c.include?('s')

    #  求字符串的長度

    p c.size

    #  判斷某個字符在字符串中的位置

    p c.index 'h'

    #  替換某個字符為另一個字符

    p c.sub 's','b'

    Ruby也有自己的命名規則

    變量,symbol,方法使用蛇形命名,採用全小寫,多個單詞使用_隔開

    # variable,symbol,method:snake_case

    常量使用全大寫,多個單詞也是使用_隔開

    #  constant:CONST_FOD

    類名使用駝峰命名

    #classname:CamelCase

    文件名也是用蛇形命名,採用全小寫,多個單詞使用_隔開

    #  file name:file_name.rb

    方法命名的一些規則

    一般方法命名採用全小寫,多個單詞使用_隔開

    #  normal method:normal_method

    有返回值類型的命名尤其返回bool類型的值,需要加一個問號

    #  predicate method:even?

    危險方法類型的命名需要加一個!

    #  dangerous method:reverse!

    #  把字符串變為symbol

    p c.to_sym

    很多人不知道symbol是什麼意思,symbol可以理解為一旦定義就不會被改變的那種量。在Ruby中,我們一般經常使用的特定值會使用symbol命名。symbol在Ruby中的數據結構查找是很快的,並且不會被Ruby的垃圾回收機制回收。一般我們會把它作為Hash的key。Hash可以看做OC中的字典、Java中的Map,是一種以一對key-value鍵值對組成的數據結構。


    給大家出兩道題吧

    第一道:判斷一個字符串是否是回文,例如abcba,這種正著讀倒著讀都是一致的

    第二道:找出一個字符串偶數位的字母,例如abcd,輸出b和d。


    相关文章

      网友评论

        本文标题:02.Ruby學習分享之數字和文本

        本文链接:https://www.haomeiwen.com/subject/wzmtottx.html