• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Ruby程序語言之數字、字符串和其它(1)

    發布: 2007-6-11 15:03 | 作者: seanhe | 來源: | 查看: 26次 | 進入軟件測試論壇討論

    領測軟件測試網

    在Ruby中,一切都是對象。更精確地說,Ruby中的一切都是一個具有完整功能的對象。因此,在Ruby中,數字4,定點數3.14和字符串"Hi"都是對象。顯然,它們是有點"特殊"的,因為你不必使用new方法來創建它們。代之的是,你使用例如"literal 4"這樣的形式來創建一個代表數字4的對象的實例。

    然而,對于絕大多數人來說,學習一種新的編程語言時,首先理解該語言提供的"標準"類型是非常有用的。所以,在這一節,我們先探討數字類型,字符串類型,布爾類型和另外一些基本的Ruby數據類型。

    數字類型

    實質上,Ruby中的數字被分為整數和浮點數兩大類。其中,整數又被進一步細分為"常規大小"的整數和大型整數。因為在Ruby中一切都是對象,所以整數和浮點數都是按類來定義的(見圖1)。從圖1看出,Numeric是所有數字類型的基類,Float和Integer類是Numeric的子類。Fixnum和Bignum都是Integer的子類型-它們分別定義了"常規大小"的整數和大型整數。



    圖1.Ruby的數字類型類繼承圖

    Literal用來描述這些類的實例。下面的在交互式Ruby外殼(irb)中的代碼顯示了Float,Fixnum和Bignum的literal實例。注意,可以在literal上進行方法調用(在此,是指類方法)。

    irb(main):001:0>3.class

    =>Fixnum

    irb(main):002:0>3.4.class

    =>Float

    irb(main):003:0>10000000000000000000.class

    =>Bignum

    還有另外一些語法用來創建數字類型,顯示于下面的代碼列表中。字母E可以用來描述以指數標志的數字。數字的前面加上0代表這是一個八進制數,加上0x代表這是一個十六進制數,而0b代表是一個二進制數。為清晰起見,下劃線可以用作數字中的分隔符號。注意,當寫literal時,不要用逗號作為分隔符號。在一些情況中,這實際上能生成一個數組,我們將在后面討論。最后,在一個字符(或Ctrl或元字符的組合)前面的一個問號將會創建一個Fixnum的實例,相應于字符的ASCII字符/逃逸序列值。

    <

    irb(main):001:0>3.14E5#指數標志

    =>314000.0

    irb(main):002:0>054#八進制

    =>44

    irb(main):003:0>0x5A#十六進制

    =>90

    irb(main):004:0>0b1011#二進制

    =>11

    irb(main):005:0>10_000#10,000,用下劃線隔開

    =>10000

    irb(main):006:0>i=10,000#創建一個數組而不是10000Fixnum

    =>[10,0]

    irb(main):007:0>i.class

    =>Array

    irb(main):008:0>?Z#FixnumASCII值

    =>90

    irb(main):009:0>?Z.class

    =>Fixnum

    irb(main):010:0>?\C-s#Control-s的值ASCII

    =>19

    Fixnum和Bignum實例間的真實差別是什么?Fixnum整數可以被存儲在機器中的一個字(通常16,32或64位)中,但減去1個位;而Bignum實例是超出固定存儲空間的整數。當然,作為開發者,你不必擔心整數的大。ㄒ娤旅娴睦樱,由Ruby負責為你實現Fixnum和Bignum之間的自動轉換!

    irb(main):001:0>i=4

    =>4

    irb(main):002:0>i.class

    =>Fixnum

    irb(main):003:0>i=i+100000000000000

    =>100000000000004

    irb(main):004:0>i.class

    =>Bignum

    irb(main):005:0>i=i-100000000000000

    =>4

    irb(main):006:0>i.class

    =>Fixnum
    字符串

    在Ruby中,字符串是任意順序的字節。通常,它們是一個字符序列。在Ruby中,可以使用一個literal或new方法來創建String類的實例。

    irb(main):001:0>s1="HelloWorld"

    =>"HelloWorld"

    irb(main):002:0>s2=String.new("HelloWorld")

    =>"HelloWorld"

    當然,String中定義了許多方法(和操作符)。另外,可以使用單引號或雙引號來指定一個字符串。雙引號情況下允許串中加入逃逸字符并能夠嵌入待計算的表達式。在單引號串情況下,你看到的就是串中的實際內容。為了更好的理解,請看下列例子。

    irb(main):001:0>str1='a\nstring'

    =>"a\\nstring"

    irb(main):002:0>str2="a\nstring"

    =>"a\nstring"

    irb(main):003:0>putsstr1

    a\nstring

    =>nil

    irb(main):004:0>putsstr2

    a

    string

    =>nil

    irb(main):005:0>'trytoadd#{2+2}'

    =>"trytoadd\#{2+2}"

    irb(main):006:0>"trytoadd#{2+2}"

    =>"trytoadd4"

    irb(main):007:0>this="that"

    =>"that"

    irb(main):008:0>'whensinglequoterights#{this}'

    =>"whensinglequoterights\#{this}"

    irb(main):009:0>"doublequoterights#{this}"

    =>"doublequoterightsthat"

    請注意,在顯示之前,雙引號中的文本是如何被計算的,其中包括了逃逸符號(\n)和表達式(#{2+2})。

    除了使用單引號和雙引號來定義一個字符串literal外,在Ruby中,還有另外的方法可以表達literal。一個百分號和小寫或大寫字母Q可以用來表達一個字符串,分別相應于單引號或雙引號風格。

    irb(main):001:0>%q@thisisasinglequotestring#{2+2}here@

    =>"thisisasinglequotestring\#{2+2}here"

    irb(main):002:0>%Q@thisisadoublequotestring#{2+2}here@

    =>"thisisadoublequotestring4here"

    注意,跟隨在q%或Q%后面的字符分別定義了字符串literal的開始和結束。在本例中,@符號用作字符串開始與結束的限界符號。

    還應該注意,Ruby并沒有區分一個字符串和一個字符。也就是說,沒有適用于單個字符的特定的類-它們僅是一些小的字符串。

    布爾類型

    最后,讓我們再看一下布爾類型。在Ruby中,有兩個類用于表達布爾類型:TrueClass和FalseClass。每個這些類僅有一個實例(一個singleton):也就是true和false。這些是可在Ruby的任何地方存取的全局值。還有一個類NilClass。NilClass也僅有一個實例nil-表示什么也沒有。然而,在布爾邏輯中,nil是false的同義詞。

    irb(main):001:0>true|false

    =>true

    irb(main):002:0>true&false

    =>false

    irb(main):003:0>true|nil

    =>true

    irb(main):004:0>true&nil

    =>false


    共2頁: 1 [2] 下一頁

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>