Types de données Ruby

Dans ce chapitre, nous allons présenter les types de données de base de Ruby.

Les types de données pris en charge par Ruby incluent les types de base Number, String, Ranges, Symbols, ainsi que les valeurs spéciales true, false et nil, et deux structures de données importantes - Array et Hash.


Types numériques (Number)

1. Entier

Il existe deux types d'entiers. S'il est compris dans 31 bits (quatre octets), il s'agit d'une instance de Fixnum. S'il dépasse cette limite, il s'agit d'une instance de Bignum.

La plage d'entiers va de -230à 230-1, et les entiers de cette plage sont des objets de classeFixnum. Lorsque la valeur entière est supérieure ou égale à 2 à la puissance 30 ( -262à 262-1), il sera automatiquement converti en type Bignum.

Vous pouvez utiliser un signe initial facultatif avant l'entier, un indicateur de base facultatif (0 pour octal, 0x pour hexadécimal, 0b pour binaire), suivi d'une série de chiffres. Les caractères de soulignement sont ignorés dans la chaîne numérique.

Vous pouvez obtenir la valeur entière d'un caractère ASCII ou d'une séquence d'échappement indiquée par un point d'interrogation.

Exemple

123 #Fixnum décimal 1_234 #Fixnum décimal avec des caractères de soulignement -500 #Fixnum négatif 0377 #Octal 0xff #Hexadécimal 0b1011 #Binaire "a".ord #Le code du caractère "a" ?\n #Le code du caractère de saut de ligne (0x0a) 12345678901234567890 #Grand nombre #Entier. Voici quelques littéraux entiers. #Littéral : les valeurs que l'on peut voir dans le code - nombres, valeurs booléennes, chaînes de caractères, etc. - sont appelées littéraux. #Comme 0, 1_000_000, 0xa, etc. a1=0 #Entier avec séparateurs de milliers a2=1_000_000 #Représentation dans d'autres bases a3=0xa puts a1,a2 puts a3 #puts et print affichent tous les deux des caractères sur la console, puts incluant un saut de ligne. =beginCeci est un commentaire, appelé commentaire de document intégré, similaire auC#/**/ dans =end

Type à virgule flottante

Ruby prend en charge les nombres à virgule flottante. Ce sont des nombres avec des fractions décimales. Les nombres à virgule flottante sont des objets de la classeFloat, et peuvent être l'un des suivants.

Exemple

Exemple

123.4 #Valeur à virgule flottante 1.0e6 #Notation scientifique 4E20 #Non requis 4e+20 #Signe avant l'exposant #Type à virgule flottante f1=0.0 f2=2.1 f3=1000000.1 puts f3

Opérations arithmétiques

Opérateurs d'addition, de soustraction, de multiplication et de division : + - * / ; l'opérateur d'exponentiation est **

L'exposant n'a pas besoin d'être un entier, par exemple

Exemple

#Arithmétique des exposants puts 2**(1/4) # Le quotient de 1 et 4 est 0, puis 2 à la puissance 0 vaut 1 puts 16**(1/4.0)#Le quotient de 1 et 4.0 est 0.25 (un quart), puis on prend la racine quatrième.

Type chaîne de caractères

Une chaîne Ruby est simplement une séquence d'octets de 8 bits, et ce sont des objets de la classe String.

Les chaînes délimitées par des guillemets doubles autorisent la substitution et l'utilisation de notations avec barre oblique inverse ; les chaînes délimitées par des guillemets simples n'autorisent pas la substitution et n'autorisent que deux notations avec barre oblique inverse : \\ et \'.

Exemple

#!/usr/bin/ruby -w puts 'échapper en utilisant "\\"'; puts 'C'\'est vrai';

Essayez-le »

Cela produira le résultat suivant :

escape using "\"
That's right

Vous pouvez utiliser la séquence#{ expr }pour substituer la valeur de toute expression Ruby dans une chaîne. Ici, expr peut être n'importe quelle expression Ruby.

Exemple

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

Cela produira le résultat suivant :

相乘 : 86400

Exemple

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

Le résultat de sortie est:

Ruby
Ruby,ok

Notations de barre oblique inversée

Le tableau suivant répertorie les notations de barre oblique inversée prises en charge par Ruby :

NotationsCaractère représenté
\nNouvelle ligne (0x0a)
\rRetour chariot (0x0d)
\fSaut de page (0x0c)
\bRetour arrière (0x08)
\aSonnerie (0x07)
\eÉchappement (0x1b)
\sEspace (0x20)
\nnnNotation octale (n est 0-7)
\xnnNotation hexadécimale (n est 0-9, a-f ou A-F)
\cx, \C-xContrôle-x
\M-xMéta-x (c | 0x80)
\M-\C-xMéta-Contrôle-x
\xCaractère x

Pour plus de détails sur les chaînes Ruby, veuillez consulterChaîne Ruby。

Tableaux

Les littéraux de tableau sont définis par des valeurs séparées par des virgules à l'intérieur de [], et prennent également en charge les définitions de plages.

  • (1) Les tableaux sont accessibles par index via []
  • (2) Insérer, supprimer et remplacer des éléments par des opérations d'affectation
  • (3) Utilisez + et - pour fusionner et supprimer des éléments, et la collection est renvoyée en tant que nouvelle collection.
  • (4) Le signe << ajoute des éléments aux données d'origine.
  • (5) Le signe * répète les éléments du tableau.
  • (6) Les symboles | et & sont utilisés pour les opérations d'union et d'intersection (faites attention à l'ordre).

Exemple

#!/usr/bin/ruby ary = [ "fred", 10, 3.14, "This is a string", "last element", ] ary.each do |i| puts i end

Essayez-le »

Cela produira le résultat suivant :

fred
10
3.14
This is a string
last element

Pour plus de détails sur les tableaux Ruby, veuillez consulterTableau Ruby。

Type Hash

Un hash Ruby est une série de paires clé/valeur placées entre accolades, avec les clés et les valeurs séparées par des virgules et la séquence =>. Les virgules finales sont ignorées.

Exemple

Exemple

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

Essayez-le »

Cela produira le résultat suivant :

red is 3840
green is 240
blue is 15

Pour plus de détails sur les tables de hachage Ruby, veuillez consulterRuby Hash。

Type Range

Une plage représente un intervalle.

Une plage est représentée en définissant une valeur de début et une valeur de fin. Les plages peuvent être construites à l'aide de s..e et s...e, ou via Range.new.

Une plage construite avec .. va de la valeur de début à la valeur de fin (inclusivement). Une plage construite avec ... va de la valeur de début à la valeur de fin (exclusivement). Lorsqu'elle est utilisée comme itérateur, la plage renvoie chaque valeur de la séquence.

La plage (1..5) signifie qu'elle contient les valeurs 1, 2, 3, 4, 5, et la plage (1...5) signifie qu'elle contient les valeurs 1, 2, 3, 4.

Exemple

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

Essayez-le »

Cela produira le résultat suivant :

10 11 12 13 14 15

Pour plus de détails sur les plages Ruby, veuillez consulterRuby Range。

Autres extensions