English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

类型数据 Ruby

In questa sezione, vi presenteremo i tipi di dati di base di Ruby.

I tipi di dati supportati da Ruby includono i tipi di base Number, String, Ranges, Symbols, nonché i valori speciali true, false e nil, oltre a due strutture dati importanti - Array e Hash.

Tipo numerico (Number)

Intero (Integer)

Gli interi si dividono in due tipi, se sono entro 31 bit (quattro byte), allora sono esempi di Fixnum. Se superano, sono esempi di Bignum.

L'intervallo degli interi parte da -230 a 230-1, gli interi in questo intervallo sono classi Fixnum di un oggetto, quando il valore numerico è maggiore o uguale a 2 alla 30a potenza ( -262 a 262-1), verrà automaticamente convertito in tipo Bignum.

Puoi usare un segno di prefisso opzionale, un indicatore di base opzionale (0 corrisponde all'ottale, 0x al esadecimale, 0b al binario), seguito da una serie di numeri. I caratteri di sottolineatura vengono ignorati nella stringa numerica.

Puoi ottenere un valore numerico di un carattere ASCII o di una sequenza di escape contrassegnata da un punto interrogativo.

示例在线

123 # Fixnum 十进制
1_234 # Fixnum 带有下划线的十进制
-500 # 负的 Fixnum
0377 # 八进制
0xff # 十六进制
0b1011 # 二进制
"a".ord # "a" 的字符编码
?\n                # Codifica del carattere di newline (0x0a)
12345678901234567890 # Grande numero
 
#Interi Integer Ecco alcuni litterali di interi 
#Litterale (literal):Valori, numeri, valori bool, stringhe e altri che si vedono nel codice sono chiamati litterali 
#Come 0,1_000_000,0xa ecc. 
a1=0 
 
#Interi con simbolo di migliaia 
a2=1_000_000 
 
#Altri rappresentazioni di base 
a3=0xa 
puts a1,a2 
puts a3 
 
#puts print sono entrambi per stampare caratteri sulla console, dove puts restituisce un carattere di newline 
=begin 
Questo è un commento, chiamato: commento documentazione incorporato 
Simile a /**/ in C# 
=end

Tipo di numero a virgola mobile

Ruby supporta i numeri a virgola mobile. Sono numeri con una parte decimale. I numeri a virgola mobile sono la classe Float degli oggetti, e può essere uno di quelli elencati di seguito.

示例在线

123.4                # Valore a virgola mobile
1.0e6                # Notazione scientifica
4E20                 # Non è obbligatorio
4e+20                # Simbolo del segno esponenziale prima dell'esponente
 
#Tipo di numero a virgola mobile 
f1=0.0 
f2=2.1 
f3=1000000.1 
puts f3

Operazioni aritmetiche

Operatori di operazioni aritmetiche:+-*/;Operatore di operazione esponenziale:**

L'esponente non deve essere un numero intero, ad esempio

示例在线

#Arithmetic exponentiation 
puts 2**(1/4)#1 e 4 hanno una divisione di 0, quindi 2 alla potenza 0 è 1 
puts 16**(1/4.0)#1 e 4.0 hanno una divisione di 0.25 (un quarto), quindi radice quadrata

Tipo di stringa

Una stringa Ruby, in termini semplici, è una sequenza di 8 byte, sono oggetti della classe String .

Le stringhe marcate con virgolette doppie permettono la sostituzione e l'uso di simboli di backslash, mentre le stringhe marcate con virgolette singole non permettono la sostituzione e permettono solo i due simboli di backslash \\ e \' .

示例在线

#!/usr/bin/ruby -w
 
puts 'evita di scappare usando \\\"';
puts 'That\'s right';

这将产生以下结果:

evita di scappare usando "\"
That's right

Puoi usare una sequenza #{ expr } Sostituisci il valore di qualsiasi espressione Ruby con una stringa. In questo caso, expr può essere qualsiasi espressione Ruby.

示例在线

#!/usr/bin/ruby -w
 
puts "moltiplicazione : #{24*60*60}";

这将产生以下结果:

moltiplicazione : 86400

示例在线

#!/usr/bin/ruby -w
 
name="Ruby" 
puts name 
puts "#{name+",ok"}"

Il risultato dell'output è:

Ruby
Ruby,ok

Simbolo di backslash

La tabella seguente elenca i simboli di backslash supportati da Ruby:

SimboloCarattere rappresentato
\nCarattere di newline (0x0a)
\rCarattere di ritorno a capo (0x0d)
\fPagina di ritorno (0x0c)
\bTasto di backspace (0x08)
\aSegnale di allarme Bell (0x07)
\eCarattere di escape (0x1b)
\sCarattere spazio (0x20)
\nnnRappresentazione ottale (n è 0-7)
\xnnRappresentazione esadecimale (n è 0-9, a-f o A-F)
\cx, \C-xControl-x
\M-xMeta-x (c | 0x80)
\M-\C-xMeta-Control-x
\xCarattere x

Per ulteriori dettagli sulla stringa Ruby, consulta Stringa Ruby (String)

Array

Le espressioni letterali degli array sono definite tra parentesi graffe [] con elementi separati da virgole e supportano la definizione di intervalli.

  • (1) Accesso agli elementi dell'array tramite l'indice []

  • (2) Inserimento, rimozione e sostituzione degli elementi tramite operazioni di assegnazione

  • (3) Unione e rimozione di elementi tramite i simboli + e -, con l'array che appare come nuovo insieme

  • (4) Aggiunta di elementi all'array originale tramite il simbolo <<

  • (5) Ripetizione degli elementi dell'array tramite il simbolo *

  • (6) Operazioni di unione e intersezione tramite i simboli | e & (attenzione all'ordine)

示例在线

#!/usr/bin/ruby
ary = [ "fred", 10, 3.14, "Questo è una stringa", "ultimo elemento", ]
ary.each do |i|
    puts i
end

这将产生以下结果:

fred
10
3.14
Questo è una stringa
ultimo elemento

Per ulteriori dettagli sugli array Ruby, consulta Array Ruby (Array)

Tipo di hash

Il hash Ruby è una serie di coppie chiave/valore messa tra parentesi graffe, separate da virgole e da =>. La virgola in coda viene ignorata.

示例在线

示例在线

#!/usr/bin/ruby
 
hsh = colors = { "red" => 0xf00, "green" => 0x0f0, "blue" => 0x00f }
hsh.each do |key, value|
    print key, " è ", value, "\n"
end

这将产生以下结果:

red è 3840
green è 240
blue è 15

Per ulteriori dettagli sui hash Ruby, consulta Hash Ruby (Hash)

Tipo di intervallo

一个范围表示一个区间。

范围是通过设置一个开始值和一个结束值来表示。范围可使用 s..e 和 s...e 来构造,或者通过 Range.new 来构造。

使用 .. 构造的范围从开始值运行到结束值(包含结束值)。使用 ... 构造的范围从开始值运行到结束值(不包含结束值)。当作为一个迭代器使用时,范围会返回序列中的每个值。

范围 (1..5) 意味着它包含值 1, 2, 3, 4, 5,范围 (1...5) 意味着它包含值 1, 2, 3, 4 。

示例在线

#!/usr/bin/ruby
 
(10..15).each do |n|
    print n, ' '
end

这将产生以下结果:

10 11 12 13 14 15

如需了解更多有关 Ruby 范围的细节,请查看 范围(Range) Ruby