8일(2): 루비 인정 시험

5846 단어 Ruby

io 클래스 방법: 결과를 실행합니다

※ファイルdataの内容はabcdefg

File.open("data") do |io|
  while not io.eof?
    print io.read(1)
    io.seek(0,IO::SEEK_SET)
  end
end

#答え
aが表示され続ける
6할의 CPU가 메모리 6GB에 먹혀서 좀 조급해요.

EOF


File의 약칭

IO 클래스 메서드, SEEKSET


참조: instance method IO#seek
파일 포인터를 whence 위치에서 오프셋만 이동합니다.오프셋 위치로 이동에 성공하면 0으로 되돌아갑니다
서류상의 문자에는 주소가 아닌 바늘처럼 생긴 것이 있다.마치
이번엔 IO야.seek(0, IO::SEEK SET)에서 오프셋을 0으로 지정
텍스트 읽기는 처음 a부터 하지 않는 것 같습니다. (계속 a 읽기)

strgtime: 실행 결과에 맞는 옵션을 선택하십시오

#問題
t = Time.gm(1970,1,1)
puts t.strftime("#ここに代入する式を選択")
#実行結果
1970/01/01
#選択肢
1, %y/%m/%d   ,2, %Y/%M/%d
3, %y/%M/%d      ,4, %Y/%m/%d

#答え
4

strgtime 방법


instance method Time#strftime
조금만 기억할 수 있을 뿐이다.

대표적인 물건


1
2
3
4
5
6
7
네 분의 서력
두 분의 서력
달.
일자
타임
분 단위
초수
%Y
%y
%m
%d
%H
%M
%S

정규 표현식:


New 또는 new로만 구성된 행과 일치하는 정규 표현식을 선택하십시오.(두 가지 선택
#選択肢
^[Nn]ew$
^N|new$
^[Nn][e][w]$
^New|new$
^[New]|[new]$

#答え 1と3

정규 표현식


정규 표현도 전혀 모르기 때문에 수업이 없는 주말과 월요일에 이해하고 싶어요.

Ruby 예약어: 예약어 선택

#問題
while   rand
goto   class   const

#答え whileとclass

예약 언어


루비 쪽에서 정의된 단어입니다.자기가 쓰고 싶어도 소용없다.

to_s: 실행 결과 계산

#問題
x = 0
[1,2,3].each do |x|
 print x.to_s + " "
end

puts x

#解答 1  2  3  0
(1,2,3は表示上は数字型だか、実は文字型)

to_s: 정수형 데이터를 문자형으로 변환


인증 코드

x = 0
[1,2,3].each do |x|
  print x.to_s + " "
  print x.to_s.class
end
puts x

#実行結果
irb(main):001:0> x = 0
[=> 0
1irb(main):002:0> [1,2,3].each do |x|
 irb(main):003:1*   print x.to_s + " "
irb(main):004:1>   print x.to_s.class
irb(main):005:1> o_s.class
irb(main):005:1> end
irb(main):005:1> end1 String2 String3 String=> [1, 2, 3]
irb(main):006:0> puts x
0
=> nil
#不思議

루비의 가짜 값

#問題
nil  0   ""
false  0.0   NULL

#解答  nil と  false
이것도 기억이에요.

예외 처리: 적절한 옵션 선택

#問題
y = false
y ##AAA## (raise "failed")
puts("succeeded!")
#選択肢
1, |  ,2, ||   ,3, &    ,4, &&

#答え   &&

& 연산자


왼쪽 가장자리의 평가 결과가 가짜라면 연산자는 오른쪽 가장자리를 평가하지 않고 다음 처리를 계속합니다
왼쪽 가장자리의 평가 결과가 사실이라면 ||| 연산자는 오른쪽 가장자리를 평가하지 않고 다음 처리를 계속합니다
| 연산자와 & 연산자는 왼쪽의 평가 결과와 상관없이 오른쪽을 평가한다

예외


레이스가 예외를 던졌기 때문에 다음 처리를 건너뛰었다
포착하려면 begin rescueend 를 사용하십시오
이번에 raise를 실행하면puts.실행 안 함 고려

영역 객체: 1부터 10까지의 코드 선택

(1.10).each do |i| puts i end
(1..10).each do |i| puts i end
(1...10).each do |i| puts i end
(1....10).each do |i| puts i end

#答え 2

영역 객체


두 점과 세 점을 정의합니다.
2개는 2~10 이하, 3개는 2~10 이하

gsub! :실행하면 어떻습니까

#問題
HOGE = "hoge"
HOGE.gsub!("hoge", "piyo")
print HOGE

#答え  警告は発生せず、「piyo」が表示される。

gsub! :파괴적 방법


대문자로 시작하는 식별자는 상수이기 때문에 새로운 대입을 할 때 경고가 발생합니다.
하지만, gsub!파괴적인 방법만 사용했기 때문에 경고가 발생하지 않고 문자열은piyo로 바뀐다.

예외: 올바른 기술 선택

#問題
1, beginによって例外を捕捉する際は、例外の可能性がある処理をbeginからrescueの間に記述する。
2, ひとつの処理に対して複数のrescueは、指定できない。
3, 例外オブジェクトのメソッドstacktraceにより、例外スタックを取得できる。
4, ensureは、必ず記述する必要がある

#答えは1

이른바 Stacktrace


참조:
오류가 발생했을 때 표시되는 내용에는 오류가 발생하기 전의 과정이 대략적으로 표시됩니다. (어떤 순서로 호출된 절차를 어떻게 처리하는지)

오류 코드


다음 코드의 ##AAA###에는 ZeroDivisionError가 발생했을 때의 처리가 기술되어 있습니다.적합한 코드 선택
#問題
begin
  puts 10 / 0 #ZeroDivisionError
  ##AAA##
  print "ZeroDivisionException:", ex.message
end
#選択肢
1, rescue ZeroDivisionError = ex
2, rescue ZeroDivisionError ex
3, rescue ZeroDivisionError -> ex
4, rescue ZeroDivisionError => ex

#答え 3

시험해 보다

begin
  puts "hello"
  puts 10 / 0
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  rescue ZeroDivisionError => ex
    puts "good bye"
    print "ZeroDivisionException:", ex.message
end
begin
  puts "hello"
  puts 10 / 0
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  puts "good afternoon"
  rescue Exception => ex
    puts "good bye1111111"
    print "message:", ex.message
  rescue ZeroDivisionError => ex
    puts "good bye2222222"
    print "ZeroDivisionException:", ex.message
end
참조: 루비 예외 정보

?A:코드 실행은 어떻게 되나요?

#問題
p ?A

#答え "A"

설명 코드

#コード1 
p "A".ord
#出力
65
#コード2
p 65.chr 
#出力
"A"

65


유니코드의 A 번호
참조: Ruby를 통한 문자 및 유니코드 코드 코드 점 상호 변환
이번에도 그렇구나!잘 모르다

좋은 웹페이지 즐겨찾기