때때로 no-op 절은 코드를 더 읽기 쉽게 만들 수 있습니다.
그것은 의견의 문제 일 수 있지만 여기에 예가 있습니다. 두 개의 유닉스 경로를 사용하여 작동하는 함수를 만들었다 고 가정 해 보겠습니다. 한 경로에서 다른 경로로 cd하는 데 필요한 '경로 변경'을 계산합니다. 경로가 모두 '/'로 시작해야하거나 둘 다 시작하지 않아야한다는 제한을 함수에 적용합니다.
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
true # continue with function
else
return 1 # Skip function.
fi
일부 개발자는 no-op을 제거하고 싶지만 조건부 부정을 의미합니다.
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
이제-내 의견으로는-함수 수행을 건너 뛰고 싶은 조건이 if 절에서 명확하지 않습니다. no-op을 제거하고 명확하게 수행하려면 if 절을 함수에서 제거해야합니다.
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
더 좋아 보이지만 여러 번 우리는 이것을 할 수 없습니다. 함수 내에서 확인이 수행되기를 원합니다.
그래서 얼마나 자주 이런 일이 발생합니까? 자주는 아닙니다. 아마도 일년에 한두 번. 충분히 자주 발생하므로 알고 있어야합니다. (언어에 관계없이) 내 코드의 가독성을 향상 시킨다고 생각할 때 나는 그것을 사용하는 것을 주저하지 않습니다.