English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 장에서는 Ruby의 기본 데이터 타입을 소개할 것입니다.
Ruby가 지원하는 데이터 타입은 기본 Number, String, Ranges, Symbols, 그리고 true, false, nil 이这几个特殊值, 또한 두 가지 중요한 데이터 구조인 Array와 Hash입니다.
정수(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) |
\e | Escape 문자 (0x1b) |
\s | 공백 문자 (0x20) |
\nnn | 8진수 표기법 (n은 0-7) |
\xnn | 16진수 표기법 (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)。