이 표현이 awk에서 무엇을 의미하는지 말해 줄 수 있는 사람이 있나요?
records[rec] = (rec in records) ? records[rec] : func(rec)
답변1
rec in records
rec
사용되면 true로 평가됩니다.연관 배열의 인덱스로records
, 그렇지 않으면 거짓입니다.
(rec in records) ? records[rec] : func(rec)
사용삼항 연산자, 그리고 다음과 같이 평가됩니다 records[rec]
(rec
와 연관된 값records
) 그러한 값이 존재하는 경우, 그렇지 func(rec)
않은 경우 결과입니다.
records[rec] = (rec in records) ? records[rec] : func(rec)
결과를 에 저장합니다 records[rec]
.
이는 다음과 같습니다.
if (!(rec in records)) records[rec] = func(rec)
그러나 값이 이미 존재하는 경우 할당이 수행되지 않습니다.즉, 인덱스가 존재하지 않으면 func(rec)
in 의 결과가 저장됩니다.records[rec]
rec
records