I 독서하고 변수 : 변수가 vm.yaml 파일에 설정되지 않으면, 변수가 제 (예컨대 puts $var_a
시)에 액세스 할 때까지yaml 파일에서 읽은 변수가 yaml 파일에 선언되지 않은 경우 예외를 발생시키는 방법은 무엇입니까? YAML 파일에서
begin
settings = YAML.load_file 'vm.yaml'
$var_a = settings['var_a']
$var_b = settings['var_b']
....
$var_z = settings['var_z']
rescue
puts "\nInvalid vm.yaml - please create or recreate vm.yaml from vm.yaml.example\n\n"
exit 1
end
puts $var_a
, 에러가 검출되지 않을 것이다.
yaml 파일에 변수가 설정되어 있지 않으면 rescue 블록의 코드를 실행하고 싶습니다.
이것을 수행하는 데 가장 루비 스트 한 방법은 무엇입니까?
@DaneAnderson :
settings.fetch('var_a') { 'foo' }
하거나 사용자 지정 오류 메시지를 작성 :
이는 기본 반환 값을 설정할 수 있습니다! 중첩 된 요소를 어떻게 가져 옵니까? 예 : 'var_a_a = settings [ 'var_a'] [ 'a']' –
yaml 파일로부터 데이터를 읽어 들이면 중첩 된 해시로 작업 할 가능성이 높습니다. 두뇌는 처음에는 주위를 두들겨 감싸기가 힘들지만 그 중심에는'settings.fetch ('var_a') 메소드에 대한 응답이 해시이므로 [ ] 또는 fetch를 사용하여 반환 된 해시 값을 가져 와서'settings.fetch ('var_a'). fetch ('a')' –