English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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
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
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
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
La tabella seguente elenca i simboli di backslash supportati da Ruby:
Simbolo | Carattere rappresentato |
---|---|
\n | Carattere di newline (0x0a) |
\r | Carattere di ritorno a capo (0x0d) |
\f | Pagina di ritorno (0x0c) |
\b | Tasto di backspace (0x08) |
\a | Segnale di allarme Bell (0x07) |
\e | Carattere di escape (0x1b) |
\s | Carattere spazio (0x20) |
\nnn | Rappresentazione ottale (n è 0-7) |
\xnn | Rappresentazione esadecimale (n è 0-9, a-f o A-F) |
\cx, \C-x | Control-x |
\M-x | Meta-x (c | 0x80) |
\M-\C-x | Meta-Control-x |
\x | Carattere x |
Per ulteriori dettagli sulla stringa Ruby, consulta Stringa Ruby (String)。
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)。
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)。
一个范围表示一个区间。
范围是通过设置一个开始值和一个结束值来表示。范围可使用 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。