Ruby-내장 함수
때문에 커널 모듈로 포함되어있는 개체 클래스, 그 방법은 루비 프로그램에서 모든 곳에서 사용할 수 있습니다. 수신자없이 호출 할 수 있습니다 (기능적 형식). 따라서 종종 함수라고합니다.
Sr. 아니. | 방법 및 설명 |
---|---|
1 | abort 프로그램을 종료합니다. 예외가 발생하면 (즉, $!가 nil이 아님) 오류 메시지가 표시됩니다. |
2 | Array( obj) to_ary 또는 to_a를 사용하여 배열로 변환 한 후 obj를 반환합니다. |
삼 | at_exit {...} 프로그램이 종료 될 때 실행할 블록을 등록합니다. END 문과 비슷하지만 END 문은 블록을 한 번만 등록합니다. |
4 | autoload( classname, file) 처음 사용될 때 파일에서로드 할 클래스 클래스 이름을 등록합니다. 클래스 이름은 문자열 또는 기호 일 수 있습니다. |
5 | binding 현재 변수 및 메서드 바인딩을 반환합니다. 반환 된 Binding 개체 는 두 번째 인수로 eval 메서드에 전달 될 수 있습니다 . |
6 | block_given? 메서드가 블록 과 함께 호출 된 경우 true를 반환합니다 . |
7 | callcc {| c|...} 패스 연속 블록에 객체 (C)와 블록을 실행한다. callcc 는 전역 종료 또는 루프 구성에 사용할 수 있습니다. |
8 | caller([ n]) file : line 형식의 문자열 배열로 현재 실행 스택을 반환합니다 . n을 지정하면 아래로 n 번째 수준의 스택 항목을 반환합니다. |
9 | catch( tag) {...} 블록을 실행하는 동안 호출 된 throw에 의해 로컬이 아닌 출구를 잡습니다. |
10 | chomp([ rs = $/]) 변수 값을 반환합니다. $_ with the ending newline removed, assigning the result back to $_. 개행 문자열의 값은 rs로 지정할 수 있습니다. |
11 | chomp!([ rs = $/]) $ _에서 줄 바꿈을 제거하고 제자리에서 문자열을 수정합니다. |
12 | chop 값을 반환합니다. $_ with its last character (one byte) removed, assigning the result back to $_. |
13 | chop! $ _에서 마지막 문자를 제거하고 제자리에서 문자열을 수정합니다. |
14 | eval( str[, scope[, file, line]]) str 을 Ruby 코드로 실행 합니다. 평가를 수행 할 바인딩은 범위 로 지정할 수 있습니다 . 컴파일 할 코드의 파일 이름과 줄 번호는 파일 과 줄을 사용하여 지정할 수 있습니다 . |
15 | exec( cmd[, arg...]) cmd 명령을 실행하여 현재 프로세스를 바꿉니다 . 여러 인수가 지정된 경우 명령은 쉘 확장없이 실행됩니다. |
16 | exit([ result = 0]) 반환 된 상태 코드로 결과 와 함께 프로그램을 종료합니다 . |
17 | exit!([ result = 0]) ensure 등의 종료 처리를 우회하여 프로그램을 종료합니다 . |
18 | fail(...) raise (...) 참조 |
19 | Float( obj) float로 변환 한 후 obj를 반환합니다. 숫자 객체는 직접 변환됩니다. nil은 0.0으로 변환됩니다. 문자열은 0x, 0b 기수 접두사를 고려하여 변환됩니다. 나머지는 obj.to_f를 사용하여 변환됩니다. |
20 | fork fork {...} 자식 프로세스를 만듭니다. nil 은 자식 프로세스에서 반환되고 자식 프로세스의 ID (정수)는 부모 프로세스에서 반환됩니다. 블록이 지정되면 하위 프로세스에서 실행됩니다. |
21 | format( fmt[, arg...]) sprintf를 참조하십시오. |
22 | gets([ rs = $/]) 명령 줄 또는 표준 입력에서 한 줄에 지정된 파일 이름을 읽습니다. 레코드 분리 자 문자열은 rs로 명시 적으로 지정할 수 있습니다. |
23 | global_variables 전역 변수 이름의 배열을 반환합니다. |
24 | gsub( x, y) gsub( x) {...} x와 일치하는 모든 문자열을 바꿉니다. $_ with y. If a block is specified, matched strings are replaced with the result of the block. The modified result is assigned to $_. |
25 | gsub!( x, y) gsub!( x) {...} 문자열이 제자리에서 변경된다는 점을 제외하고 gsub와 동일한 대체를 수행합니다. |
26 | Integer( obj) obj를 정수로 변환 한 후 반환합니다. 숫자 객체는 직접 변환됩니다. nil은 0으로 변환됩니다. 문자열은 0x, 0b 기수 접두사를 고려하여 변환됩니다. 나머지는 obj.to_i를 사용하여 변환됩니다. |
27 | lambda {| x|...} proc {| x|...} lambda proc 블록을 Proc 객체 로 변환 합니다. 블록을 지정하지 않으면 호출하는 메서드와 연결된 블록이 변환됩니다. |
28 | load( file[, private = false]) 파일 에서 Ruby 프로그램을로드 합니다 . require 와 달리 확장 라이브러리를로드하지 않습니다. 경우 개인이 인 사실 ,이 프로그램은 따라서 호출 프로그램의 네임 스페이스를 보호, 익명 모듈에로드됩니다. |
29 | local_variables 지역 변수 이름의 배열을 반환합니다. |
30 | loop {...} 코드 블록을 반복합니다. |
31 | open( path[, mode = "r"]) open( path[, mode = "r"]) {| f|...} 파일을 엽니 다 . 블록이 지정되면 열린 스트림이 인수로 전달되어 블록이 실행됩니다. 블록이 종료되면 파일이 자동으로 닫힙니다. 경우 경로가 파이프로 시작 |, 다음 문자열은 명령으로 실행되고, 그 프로세스와 관련된 스트림이 반환됩니다. |
32 | p( obj) inspect 메서드를 사용하여 obj를 표시합니다 (종종 디버깅에 사용됨). |
33 | print([ arg...]) arg를 $ defout에 인쇄합니다 . 인수를 지정하지 않으면 $ _ 값이 인쇄됩니다. |
34 | printf( fmt[, arg...]) sprintf를 사용하여 fmt 에 따라 arg 를 형식화 하고 결과를 $ defout에 인쇄합니다 . 형식 지정 사양에 대한 자세한 내용은 sprintf를 참조하십시오. |
35 | proc {| x|...} proc 람다 참조. |
36 | putc( c) 기본 출력 ( $ defout )에 한 문자를 인쇄 합니다. |
37 | puts([ str]) 문자열을 기본 출력 ( $ defout ) 으로 인쇄합니다 . 문자열이 개행으로 끝나지 않으면 개행이 문자열에 추가됩니다. |
38 | raise(...) fail(...) 예외를 발생시킵니다. 예외 클래스가 지정되지 않은 경우 RuntimeError를 가정 합니다. 구조 절 에서 인수없이 raise 를 호출 하면 예외가 다시 발생합니다. 구조 절 외부에서 그렇게하면 메시지없는 RuntimeError가 발생 합니다.fail 인상에 대한 쓸모없는 이름입니다. |
39 | rand([ max = 0]) 0보다 크거나 같고 max보다 작은 의사 난수를 생성합니다. max가 지정되지 않았거나 0으로 설정되면 0보다 크거나 같고 1보다 작은 부동 소수점 숫자로 난수가 반환됩니다. srand를 사용하여 의사 랜덤 스트림을 초기화 할 수 있습니다. |
40 | readline([ rs = $/]) EOF를 읽을 때 EOFError 예외가 발생한다는 점을 제외하면 gets와 동일합니다. |
41 | readlines([ rs = $/]) 명령 줄 인수로 지정된 파일 이름 또는 표준 입력 내용을 포함하는 문자열 배열을 반환합니다. |
42 | require( lib) 처음 호출 될 때 라이브러리 (확장 라이브러리 포함) lib를 로드합니다 . require는 동일한 라이브러리를 두 번 이상로드하지 않습니다. lib에 확장자가 지정되지 않은 경우 .rb, .so 등을 추가해야합니다. |
43 | scan( re) scan( re) {|x|...} $ _. scan과 동일합니다. |
44 | select( reads[, writes = nil[, excepts = nil[, timeout = nil]]]) IO 개체의 배열로 전달되는 세 가지 유형의 IO 개체 입력, 출력 및 예외의 상태 변경을 확인합니다. 검사 할 필요가없는 인수에는 nil 이 전달됩니다. 상태가 변경된 IO 개체의 배열을 포함하는 3 요소 배열이 반환됩니다. 시간 초과시 nil 이 반환됩니다. |
45 | set_trace_func( proc) 추적을위한 핸들러를 설정합니다. proc 은 문자열 또는 proc 객체 일 수 있습니다 . set_trace_func 는 디버거 및 프로파일 러에서 사용됩니다. |
46 | sleep([ sec]) 초 초 동안 프로그램 실행을 일시 중단합니다. sec를 지정하지 않으면 프로그램이 영구적으로 일시 중지됩니다. |
47 | split([ sep[, max]]) $ _. split과 동일합니다. |
48 | sprintf( fmt[, arg...]) format( fmt[, arg...]) arg가 fmt에 따라 형식화 된 문자열을 반환합니다. 형식 지정 사양은 기본적으로 C 프로그래밍 언어의 sprintf와 동일합니다. fmt의 변환 지정자 (% 다음에 변환 필드 지정자) 는 해당 인수의 형식화 된 문자열로 대체됩니다. 제출 된 변환 목록은 다음 섹션에서 제공됩니다. |
49 | srand([ seed]) 난수의 배열을 초기화합니다. 시드 를 지정하지 않으면 시드 에 대한 시간 및 기타 시스템 정보를 사용하여 초기화가 수행됩니다. |
50 | String( obj) obj.to_s를 사용하여 문자열로 변환 한 후 obj를 반환합니다. |
51 | syscall( sys[, arg...]) 번호 sys로 지정된 운영 체제 호출 함수를 호출합니다 . sys 의 숫자와 의미 는 시스템에 따라 다릅니다. |
52 | system( cmd[, arg...]) 실행을 cmd를 명령 행을 호출한다. 여러 인수가 지정된 경우 명령은 쉘 확장없이 직접 실행됩니다. 반환 상태가 0 (성공) 이면 true를 반환 합니다 . |
53 | sub( x, y) sub( x) {...} $ _의 x와 일치하는 첫 번째 문자열을 y로 바꿉니다. 블록이 지정되면 일치하는 문자열이 블록의 결과로 대체됩니다. 수정 된 결과는 $ _에 할당됩니다. |
54 | sub!( x, y) sub!( x) {...} 문자열이 제자리에서 변경된다는 점을 제외하고 sub와 동일한 대체를 수행합니다. |
55 | test( test, f1[, f2]) 문자 테스트에서 지정한 다양한 파일 테스트를 수행합니다 . 가독성을 높이려면이 함수 대신 File 클래스 메서드 (예 : File :: Readable?)를 사용해야합니다. 인수 목록은 다음 섹션에서 제공됩니다. |
56 | throw( tag[, value = nil]) 기호 또는 문자열 태그 와 함께 대기중인 catch 함수로 이동합니다 . value는 catch에서 사용할 반환 값 입니다. |
57 | trace_var( var, cmd) trace_var( var) {...} 전역 변수에 대한 추적을 설정합니다. 변수 이름은 기호로 지정됩니다. cmd 는 문자열 또는 Proc 객체 일 수 있습니다. |
58 | trap( sig, cmd) trap( sig) {...} 신호 처리기를 설정합니다. sig는 문자열 (SIGUSR1과 같은) 또는 정수일 수 있습니다. 신호 이름에서 SIG를 생략 할 수 있습니다. EXIT 신호 또는 신호 번호 0에 대한 신호 처리기가 프로세스 종료 직전에 호출됩니다. |
59 | untrace_var( var[, cmd]) 전역 변수에 대한 추적을 제거합니다. 경우 에 cmd가 지정되어, 해당 명령이 제거됩니다. |
숫자에 대한 함수
숫자와 관련된 내장 기능 목록입니다. 다음과 같이 사용해야합니다.
#!/usr/bin/ruby
num = 12.40
puts num.floor # 12
puts num + 10 # 22.40
puts num.integer? # false as num is a float.
이것은 다음 결과를 생성합니다-
12
22.4
false
Sr. 아니. | 방법 및 설명 |
---|---|
1 | n + num n - num n * num n / num 더하기, 빼기, 곱하기 및 나누기와 같은 산술 연산을 수행합니다. |
2 | n % num n의 계수를 반환합니다. |
삼 | n ** num 지수화. |
4 | n.abs n의 절대 값을 반환합니다. |
5 | n.ceil n보다 크거나 같은 가장 작은 정수를 반환합니다. |
6 | n.coerce( num) num과 n을 모두 포함하는 배열을 상호 작용할 수있는 유형으로 변환 할 수 있습니다. 숫자 연산자의 자동 유형 변환에 사용됩니다. |
7 | n.divmod( num) n을 num으로 나눈 몫과 계수를 포함하는 배열을 반환합니다. |
8 | n.floor n보다 작거나 같은 가장 큰 정수를 반환합니다. |
9 | n.integer? n이 정수이면 true를 반환합니다. |
10 | n.modulo( num) n을 num으로 나누고 몫을 바닥으로 반올림하여 얻은 계수를 반환합니다. |
11 | n.nonzero? 0이 아니면 n을 반환하고 그렇지 않으면 nil을 반환합니다. |
12 | n.remainder( num) 나눈 나머지를 반환합니다. n 으로 num그리고 몫에서 소수를 제거합니다. 그만큼result 과 n 항상 같은 기호가 있습니다. |
13 | n.round 가장 가까운 정수로 반올림 된 n을 반환합니다. |
14 | n.truncate 소수가 제거 된 정수로 n을 반환합니다. |
15 | n.zero? n이 0이면 0을 반환합니다. |
16 | n & num n | num n ^ num 비트 연산 : AND, OR, XOR 및 반전. |
17 | n << num n >> num 비트 왼쪽 시프트 및 오른쪽 시프트. |
18 | n[num] 값을 반환합니다. numn [0] 인 최하위 비트의 th 비트. |
19 | n.chr 문자 코드에 대한 문자를 포함하는 문자열을 반환합니다. n. |
20 | n.next n.succ n 다음에 오는 다음 정수를 반환합니다. n + 1과 같습니다. |
21 | n.size 기계 표현의 바이트 수를 반환합니다. n. |
22 | n.step( upto, step) {|n| ...} 다음에서 블록을 반복합니다. n ...에 upto, 증분 step 매번. |
23 | n.times {|n| ...} 블록을 반복합니다. n 타임스. |
24 | n.to_f 변환 n부동 소수점 숫자로. 부동 변환은 정밀도 정보를 잃을 수 있습니다. |
25 | n.to_int 보고 n 정수로 변환 한 후 |
Float 함수
Sr. 아니. | 방법 및 설명 |
---|---|
1 | Float::induced_from(num) num 을 부동 소수점 숫자 로 변환 한 결과를 반환합니다 . |
2 | f.finite? f 가 무한이 아니고 f.nan이 거짓 이면 참을 반환합니다 . |
삼 | f.infinite? 반환 한 경우 , f는 무한대이며, -1의 경우 음의 무한대, 또는 전무 다른 어떤 경우. |
4 | f.nan? f 가 유효한 IEEE 부동 소수점 숫자가 아닌 경우 true를 반환합니다 . |
수학 함수
Sr. 아니. | 방법 및 설명 |
---|---|
1 | atan2( x, y) 아크 탄젠트를 계산합니다. |
2 | cos( x) x의 코사인을 계산합니다. |
삼 | exp( x) 지수 함수 (e를 x의 거듭 제곱으로 올림)를 계산합니다. |
4 | frexp( x) x의 명 목화 된 분수와 지수를 포함하는 요소를 2 개 가진 배열을 반환합니다. |
5 | ldexp( x, exp) exp의 거듭 제곱의 x x 2 값을 반환합니다. |
6 | log( x) x의 자연 로그를 계산합니다. |
7 | log10( x) x의 밑이 10 인 로그를 계산합니다. |
8 | sin( x) x의 사인을 계산합니다. |
9 | sqrt( x) x의 제곱근을 반환합니다. x는 양수 여야합니다. |
10 | tan( x) x의 탄젠트를 계산합니다. |
변환 필드 지정자
함수 의 sprintf (FMT [ARG ...]) 및 포맷 (FMT [ARG ...]) FMT에 따라 포맷 된 인수 문자열을 반환한다. 형식 지정 사양은 기본적으로 C 프로그래밍 언어의 sprintf와 동일합니다. fmt의 변환 지정자 (% 다음에 변환 필드 지정자) 는 해당 인수의 형식화 된 문자열로 대체됩니다.
Sr. 아니. | 지정자 및 설명 |
---|---|
1 | b 이진 정수 |
2 | c 단일 문자 |
삼 | d,i 십진 정수 |
4 | e 지수 표기법 (예 : 2.44e6) |
5 | E 지수 표기법 (예 : 2.44E6) |
6 | f 부동 소수점 숫자 (예 : 2.44) |
7 | g 지수가 -4보다 작 으면 % e를 사용하고 그렇지 않으면 % f를 사용합니다. |
8 | G 지수가 -4보다 작 으면 % E를 사용하고 그렇지 않으면 % f를 사용합니다. |
9 | o 8 진 정수 |
10 | s to_s를 사용하여 변환 된 문자열 또는 객체 |
11 | u 부호없는 십진 정수 |
12. | x 16 진수 정수 (예 : 39ff) |
13 | X 16 진수 정수 (예 : 39FF) |
다음은 사용 예입니다-
#!/usr/bin/ruby
str = sprintf("%s\n", "abc") # => "abc\n" (simplest form)
puts str
str = sprintf("d=%d", 42) # => "d=42" (decimal output)
puts str
str = sprintf("%04x", 255) # => "00ff" (width 4, zero padded)
puts str
str = sprintf("%8s", "hello") # => " hello" (space padded)
puts str
str = sprintf("%.2s", "hello") # => "he" (trimmed by precision)
puts str
이것은 다음 결과를 생성합니다-
abc
d = 42
00ff
hello
he
테스트 함수 인수
기능 테스트 (테스트, F1 [F2]) 문자에 의해 지정된 파일이 다음 시험을 수행 한 시험 . 가독성을 높이려면이 함수 대신 File 클래스 메서드 (예 : File :: Readable?)를 사용해야합니다.
Sr. 아니. | 인수 및 설명 |
---|---|
1 | ?r f1은 호출자의 유효 UID로 읽을 수 있습니까? |
2 | ?w f1은 호출자의 유효 UID로 쓸 수 있습니까? |
삼 | ?x f1은 호출자의 유효 UID로 실행 가능합니까? |
4 | ?o f1은 호출자의 유효 UI가 소유합니까? |
5 | ?R f1은 호출자의 실제 UID로 읽을 수 있습니까? |
6 | ?W f1은 호출자의 실제 UID로 쓸 수 있습니까? |
7 | ?X f1은 호출자의 실제 UID로 실행 가능합니까? |
8 | ?O f1은 호출자의 실제 UID가 소유합니까? |
9 | ?e f1이 존재합니까? |
10 | ?z f1의 길이가 0입니까? |
11 | ?s f1의 파일 크기 (0 인 경우 nil) |
12 | ?f f1은 일반 파일입니까? |
13 | ?d f1은 디렉토리입니까? |
14 | ?l f1은 심볼릭 링크입니까? |
15 | ?p f1은 명명 된 파이프 (FIFO)입니까? |
16 | ?S f1은 소켓입니까? |
17 | ?b f1은 블록 장치입니까? |
18 | ?c f1은 캐릭터 장치입니까? |
19 | ?u f1에 setuid 비트가 설정되어 있습니까? |
20 | ?g f1에 setgid 비트가 설정되어 있습니까? |
21 | ?k f1에 고정 비트가 설정되어 있습니까? |
22 | ?M f1의 마지막 수정 시간입니다. |
23 | ?A f1의 마지막 액세스 시간입니다. |
24 | ?C f1에 대한 마지막 inode 변경 시간. |
Sr. 아니. | 인수 및 설명 |
---|---|
1 | ?= f1과 f2의 수정 시간이 동일합니까? |
2 | ?> f1의 수정 시간이 f2보다 최근입니까? |
삼 | ?< f1의 수정 시간이 f2보다 오래 되었습니까? |
4 | ?- f1은 f2에 대한 하드 링크입니까? |
다음은 사용 예입니다. main.rb가 읽기, 쓰기 및 실행 권한이 없다고 가정합니다.
#!/usr/bin/ruby
puts test(?r, "main.rb" ) # => true
puts test(?w, "main.rb" ) # => true
puts test(?x, "main.rb" ) # => false
이것은 다음 결과를 생성합니다-
true
false
false