1
언어로 실험 한 결과 select
은 전역 범위에 정의되어 있으며 그 우선 순위는 로컬 변수보다 높습니다."선택시기"구문은 무엇입니까?
def example(select)
puts select
end
example 3
# Syntax error in eval:3: unexpected token: end (expecting when, else or end)
그래서 단계별로 선택 단계 실험 내가 얻을이 :
select 1 end
# Syntax error in eval:3: unexpected token: end (expecting when, else or end)
다음 다음
select when x = 1 end
# Syntax error in eval:1: invalid select when expression: must be an assignment or call
다음
select when 1 end
# Syntax error in eval:1: invalid select when expression: must be an assignment or call
을
select when x
# Syntax error in eval:1: unexpected token: EOF (expecting ',', ';' or '
당신이 내 질문에 왔어요 방법에 대한 아이디어를 가지고 있어야 나는 앞으로 몇 단계를 건너 뛸 수 있습니다
...
select when x;
else y
end
# Error in line 1: undefined local variable or method 'x_select_action'
그리고 마지막으로
x_select_action = 4
select when x;
else y
end
# Error in line 3: undefined method 'x_select_action' (If you declared 'x_select_action' in a suffix if, declare it in a regular if for this to work. If the variable was declared in a macro it's not visible outside it)
그래서이 키워드가 지역 변수 선행에 앞선 언어로, 나는 그것이 무엇을위한 것인지 모른다. 그러나 x
이 when 절로 주어 졌을 때 분명히 x_select_action
을 찾습니다. 이 내용은 무엇입니까? select
은 어떻게 사용 되나요?
온라인 검색 Enumerable, Hash, Channel 및 Array ...에 정의 된 select
을 참조하십시오. 그러나 언뜻보기에는 이들이 그럴 것 같지 않습니다.
도움 주셔서 감사합니다. 그것에 대해 어떤 문서가 아직 없습니다 이유, https://tour.golang.org/concurrency/5
하지만 여전히 일부 미 조정이 완료되어야합니다 :
감사합니다. 이 기능에 대한 홍보가 있습니까? –
거기 가서 : https://github.com/crystal-lang/crystal/pull/3130 –