第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Ruby 入門教程 Ruby 入門教程 09 Ruby 標(biāo)志對(duì)象

Ruby 標(biāo)志對(duì)象

本章節(jié)我們要介紹一種Ruby獨(dú)有的標(biāo)志對(duì)象(Symbol),了解標(biāo)志對(duì)象的定義方式以及存儲(chǔ)機(jī)制,了解標(biāo)志對(duì)象與字符串對(duì)象的區(qū)別以及一些常用的實(shí)例方法。

1. 什么是標(biāo)志對(duì)象

標(biāo)志是 Symbol 類的唯一實(shí)例,通常用于標(biāo)識(shí)特定資源。標(biāo)志是唯一的,因?yàn)樵谶\(yùn)行的程序中只能為特定標(biāo)志創(chuàng)建 Symbol 類的一個(gè)實(shí)例。從特點(diǎn)上來講,它更像一個(gè)字符串。

實(shí)例:

> :hello.object_id 
=> 1277788

> :hello.object_id 
=> 1277788

解釋:在這里,我們可以看到:hello符號(hào)僅創(chuàng)建一次,因?yàn)閮纱握{(diào)用:hello.object_id返回相同的對(duì)象標(biāo)識(shí)符。

而字符串則不同,即使字符串的內(nèi)容一樣,他在被調(diào)用的時(shí)候也會(huì)創(chuàng)建一個(gè)新的 String 對(duì)象。

實(shí)例:

> 'hello'.object_id 
=> 70300743069360

>'hello'.object_id 
=> 70300743056220

2. 如何創(chuàng)建標(biāo)志對(duì)象

我們?cè)谛枰獎(jiǎng)?chuàng)建的內(nèi)容之前加上一個(gè)冒號(hào):即可創(chuàng)建一個(gè) Symbol 對(duì)象。

實(shí)例:

> :ruby
=> :ruby

:ruby.class
=> Symbol

注意事項(xiàng):一定要是字母開頭,數(shù)字不能在最前面。

3. 何時(shí)會(huì)用到標(biāo)志對(duì)象

3.1 表示方法和實(shí)例變量的名稱

實(shí)例:

attr_reader :title

attr_reader之后的:title是代表@title實(shí)例變量的符號(hào)。這塊您將會(huì)在Ruby類的創(chuàng)建一章學(xué)習(xí)到。

3.2 作為哈希的key

實(shí)例:

hash = {a: 1, b: 2, c: 3}

哈希的概念我們會(huì)在Ruby哈希章節(jié)中學(xué)習(xí)。

3.3 元編程中傳遞參數(shù)

符號(hào)可用于元編程(Metaprogramming)方法中,例如send

實(shí)例:

[1,2,3].send(:first)

元編程會(huì)在進(jìn)階時(shí)候?yàn)槟獯稹?/p>

4. 標(biāo)志類型的實(shí)例方法

注意事項(xiàng):標(biāo)志類型僅擁有少量的字符串類型的方法而且無法更改,如果需要對(duì)標(biāo)志的內(nèi)容進(jìn)行操作需要把標(biāo)志轉(zhuǎn)換成字符串。

4.1 轉(zhuǎn)換成字符串

您可以使用to_s方法執(zhí)行此操作。

實(shí)例:

> :message.to_s
=> "message"

同樣您也可以使用to_sym方法將字符串轉(zhuǎn)換成Symbol類型,Symbol也擁有這個(gè)方法,這個(gè)返回值的方法是它本身。

實(shí)例:

> "message".to_sym
=> :message

4.2 大小寫轉(zhuǎn)換

這個(gè)方法和字符串一樣使用downcaseupcase。

> :abc.upcase
=> :ABC
> :ABC.downcase
=> :abc

4.3 獲取標(biāo)志的長(zhǎng)度

使用length或者size。

> :hello.length
=> 5
> :hello.size
=> 5

4.4 empty?

判斷 Symbol 對(duì)象是否為空字符串。

> :"".empty?
=> true

5. 小結(jié)

本章中我們學(xué)習(xí)了什么是標(biāo)志對(duì)象,在表示方法和實(shí)例變量名稱、哈希 key 值、元編程傳參中使用標(biāo)志對(duì)象。標(biāo)志更像字符串擁有字符串的部分方法,如何和字符串轉(zhuǎn)換。