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

Ruby 데이터 타입

이 장에서는 Ruby의 기본 데이터 타입을 소개할 것입니다.

Ruby가 지원하는 데이터 타입은 기본 Number, String, Ranges, Symbols, 그리고 true, false, nil 이这几个特殊值, 또한 두 가지 중요한 데이터 구조인 Array와 Hash입니다.

수치 타입(Number)

정수(Integer)

정수(Integer)는 두 가지로 나뉩니다.31비트 이내(4바이트)로 제한되어 있을 때 Fixnum 예제입니다. 그 이상이 되면 Bignum 예제입니다.

정수 범위는 -230 까지 230-1이 범위의 정수는 클래스 Fixnum 객체가, 정수 값이 크거나 같을 때2의30의 배수일 때( -262 까지 262-1자동으로 Bignum 타입으로 변환됩니다.

정수 앞에 선택적인 선수 기호를 사용할 수 있으며, 선택적인 기본 지표(0은 8진수에 해당, 0x는 16진수에 해당, 0b는 2진수에 해당)를 따르고, 그 다음 숫자 문자열을 따릅니다. 밑줄 문자는 숫자 문자열에서 무시됩니다.

您可以获取一个 ASCII 字符或一个用问号标记的转义序列的整数值。

온라인 예제

123                  # Fixnum 十进制
1_234                # Fixnum 带有下划线的十进制
-500                 # 负的 Fixnum
0377                 # 八进制
0xff                 # 十六进制
0b1011               # 二进制
"a".ord              # "a" 的字符编码
?\n                  # 换行符(0x0a)的编码
12345678901234567890 # 大数
 
#整型 Integer 以下是一些整型字面量 
#字面量(literal):代码中能见到的值,数值,bool值,字符串等都叫字面量 
#如以下的0,1_000_000,0xa等 
a1=0 
 
#带千分符的整型 
a2=1_000_000 
 
#其它进制的表示 
a3=0xa 
puts a1,a2 
puts a3 
 
#puts print 都是向控制台打印字符,其中puts带回车换行符 
=begin 
这是注释,称作:嵌入式文档注释 
类似C#中的/**/ 
=end

浮点型

Ruby 支持浮点数。它们是带有小数的数字。浮点数是类 Float 的对象,且可以是下列中任意一个。

온라인 예제

123.4                # 浮点值
1.0e6                # 科学记数法
4E20                 # 不是必需的
4e+20                # 指数前的符号
 
#浮点型 
f1=0.0 
f2=2.1 
f3=1000000.1 
puts f3

算术操作

加减乘除操作符:+-*/;指数操作符为**

指数不必是整数,例如

온라인 예제

#指数算术 
puts 2**(1/4)#1与4的商为0,然后2的0次方为1 
puts 16**(1/4.0)#1与4.0的商为0.25(四分之一),然后开四次方根

字符串类型

Ruby 字符串简单地说是一个 8 位字节序列,它们是类 String 的对象。

双引号标记的字符串允许替换和使用反斜线符号,单引号标记的字符串不允许替换,且只允许使用 \\ 和 \' 两个反斜线符号。

온라인 예제

#!/usr/bin/ruby -w
 
puts 'escape using "\\"';
puts 'That\'s right';

이렇게 되면 다음과 같은 결과가 생성됩니다:

escape using "\"
That's right

您可以使用序列 #{ expr } 모든 Ruby 표현식의 값을 문자열로 변경합니다. 여기서 expr은 어떤 Ruby 표현식이든 될 수 있습니다。

온라인 예제

#!/usr/bin/ruby -w
 
puts "곱하기 : #{24*60*60"

이렇게 되면 다음과 같은 결과가 생성됩니다:

곱하기 : 86400

온라인 예제

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

출력 결과는 다음과 같습니다:

Ruby
Ruby,ok

역사상자

다음 표는 Ruby가 지원하는 역사상자를 나열합니다:

기호표시하는 문자
\n换行符 (0x0a)
\r回车符 (0x0d)
\f换页符 (0x0c)
\b退格键 (0x08)
\a报警符 Bell (0x07)
\eEscape 문자 (0x1b)
\s공백 문자 (0x20)
\nnn8진수 표기법 (n은 0-7)
\xnn16진수 표기법 (n은 0-9、a-f 또는 A-F)
\cx, \C-x컨트롤-x
\M-x메타-x (c | 0x80)
\M-\C-x메타-컨트롤-x
\x문자 x

Ruby 문자열에 대한 자세한 내용을 더 알고 싶다면 Ruby 문자열(String)

배열

배열 리터럴은 [] 내부에 쉼표로 구분된 정의로 정의되며, 범위 정의를 지원합니다.

  • (1) 배열은 [] 인덱스로 접근

  • (2) 할당 연산으로 요소 추가, 제거, 대체

  • (3)+,-호로 합치기와 요소 제거를 수행하고, 집합이 새로운 집합으로 나타납니다

  • (4) <<호로 원래 데이터에 요소를 추가합니다

  • (5)*호수 배열 요소

  • (6) |와 & 기호로 합집합과 교집합을 수행합니다. (주의: 순서)

온라인 예제

#!/usr/bin/ruby
ary = [ "fred", 10, 3.14, "This is a string", "마지막 요소", ]
ary.each do |i|
    puts i
end

이렇게 되면 다음과 같은 결과가 생성됩니다:

fred
10
3.14
This is a string
마지막 요소

Ruby 배열에 대한 자세한 내용을 더 알고 싶다면 Ruby 배열(Array)

해시 유형

Ruby 해시는 대括号 안에 여러 키를 배치합니다/값 쌍, 키와 값 사이에 쉼표와 시리얼 =>로 구분합니다. 끝의 쉼표는 무시됩니다.

온라인 예제

온라인 예제

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

이렇게 되면 다음과 같은 결과가 생성됩니다:

빨간색은 3840
녹색은 240
파란색은 15

Ruby 해시에 대한 자세한 내용을 더 알고 싶다면 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 범위에 대한 자세한 내용을 더 알고 싶다면 Ruby 범위(Range)