“참”,“거짓”및 부울 토글에 대한 용어가 있습니까? [닫은]


23

기술 회의에서 코드를 설명하려고한다고 가정 해 보겠습니다.

먼저 부울 foobar을true

과

둘째, 부울 foobar을false

조금 말투처럼 보인다. 경우 foobar전환했다, 아마도, 말할 수

셋째, 나는 토글 foobar

여기에서 암시를 통해 부울을 알 수 있습니다. 그래서 할 수 없어야합니다.

넷째, 나는 foobar를 진실로

과

다섯째, 나는 foobar를 위조합니다

또한 내 말을 듣는 사람들에게 부울 변수를 다루고 있다고 알려주는 것은 무엇입니까? 이것에 대한 적절한 용어가 있습니까? 감사.


16
"나는 foobar를 true / false로 설정했다"는 말이 많지 않다는 것이 명백하다. "토글"은 청취자에게 상당히 분명합니다.
— Filip Milovanović

8
"부울 foobar를 true로 설정하고, 둘째로 boolean foobar를 false로 설정했습니다." 처음에는 거짓으로 설정하지 않았습니까? ;)
— David Arno

2
난 항상이 반전이라고 생각했다,하지만 분명히 그 비트에 대한 용어입니다 ,하지 bools는
— e_i_pi

16
위조 를 만들고 값을 false로 설정하지 않는 것과 같이 위조 를 읽었습니다 .
— 코드 InChaos

6
그러한 낮은 수준에서 코드를 설명해야합니까? 누군가가 저수준의 설명을 원한다면 분명히 코드를 읽을 것입니다. 나는 그러한 용어를 사용해야 할 이유가 없다고 말하지 는 않지만 그 용어가 드물 것으로 기대합니다.
— Dukeling

답변:


52
  • 값을 true로 설정 하면 설정 됩니다
  • false로 설정하면 지워 집니다.
  • 현재 값을 변경하면 전환 됩니다.

물론 "true로 설정 " 및 "false로 설정 "을 사용할 수도 있습니다 .


10
값을 지우는 것처럼 false로 설정하는 것은 상관이 없습니다. 나를 위해 클리어한다는 것은 참 또는 거짓을 의미합니다.
— Pieter B

49
@PieterB : 글쎄요. 문맥에 따라 다릅니다. 부울 플래그에 대해 이야기하는 경우 플래그를 "설정"및 "지우기"는 매우 일반적인 용어입니다.
— Filip Milovanović

7
@ FilipMilovanović 변수와 관련하여 변수를 설정한다는 것은 변수에 값을 할당하는 것을 의미하며 부울 변수와 관련하여이 값은 true 또는 false 일 수 있습니다. 말하기는 이상 할 것입니다. 변수를 설정한다는 것은 값을 할당하는 것을 의미합니다 ... 부울 변수 인 경우를 제외하고 실제로 설정했을 때를 제외하고 값을 할당한다는 것을 의미합니다. "true"
— Pieter B

6
@PieterB "true 또는 false"가 아닌 경우 이진 부울 (대부분의 사람들이 단어를들을 때 생각하는 것)이 아니라 삼항 true / false / 불확실한 것입니다. 말하자면, 명확하고 명확한 용어는 깃발에서 나옵니다. 모든 부울 변수가 플래그 인 것은 아니므로 용어는 많은 사용 사례에 부적합합니다.
— 큐빅

7
@PieterB : 그래- "부울 변수 설정"이라고 말하고 모든 사람이 "실제로 설정"을 의미한다고 이해하는 것이 이상 할 것입니다. 그러나 플래그를 나타내는 경우 "플래그 설정"은 일반적으로 사용되는 것으로 플래그를 나타내는 bool 값을 true로 설정하거나 플래그를 나타내는 비트를 1로 설정하는 것을 의미합니다. (PS 그러나 immibis의 대답은 그것을 고려하지 않습니다.)
— Filip Milovanović

66

부울 값에 초점을 맞추지 않고 가능하면 해당 값을 나타내는 것을 설명해야합니다. 몇 가지 예 :

  • 서비스? started = true / false 대신 시작 / 중지
  • 게임 엔진의 특수 효과? 온 / 오프
  • 전기 신호? 설정 / 재설정
  • ...

이런 식으로보다 자연스러운 용어로 이야기 할 수 있습니다. 따라서 회의에서 "foobar를 무시하고 위조하는 것"대신 "foobar를 시작한 다음 중지하십시오"(foobar가 서비스 인 경우).

부울 값에 대해 이야기해야 할 경우 "set / reset"또는 "set to true"및 "set to false"로 이동할 수 있습니다. "토글"은 모든 상황에서 아주 좋은 소리입니다.

그리고 부울 상점에서 일하는 경우 (그 의미가 무엇이든간에) 사전이 제공하는 것보다 더 많은 단어가 필요할 것입니다. 이 경우에, 진실과 위조는 단순히 당신의 microspeak의 일부입니다 .


16
동의해야합니다 ... 부울은 실제로 말하는 것을 모델링하는 구현입니다 ... 대신 그것에 대해 이야기하십시오!
— Maybe_Factor

2
부울을 설정하는 것에 대해 말하는 것을 좋아하지 않습니다. 변수로 작업하는 방식은 초기화되지 않은 상태로 시작되므로 기본적으로 아직 사용할 수 없으며 변수 설정 (true 또는 false)은 초기화입니다. 항상 true로 설정하면 혼동 될 수 있습니다.
— Pieter B

1
또한 이러한 용어 사용은 코드로도 변환됩니다. 내장 부울 유형 대신 두 개의 값 열거 형을 사용하는 것이 더 낫습니다. signal = HighVoltage또는 signal = ActiveIMHO가보다 명확합니다 signal = true.
— 큐빅

이름이 올바르게 지정된 부울 속성 / 변수는 항상 값에 사용해야하는 이름을 즉시 나타냅니다. 생각 isStarted, isActive, isCaseSensitive, mockConnection내가 부분적으로 당신과 동의, ... @PieterB. "부울 설정"이 본질적으로 true로 설정되는 것은 아닙니다. 그러나 " isActive플래그 설정 "은 해당 플래그를 true로 설정하는 것으로 합리적으로 해석 될 수 있습니다.
— Flater

1
@Cubic : 동의하지 않습니다. 향후 확장을 제외하고 이진 열거 형은 필요하지 않은 것 같습니다. signal = true실제로 명확하지 않지만 사용하려는 signal = Active경우을 사용할 수도 있습니다 isSignalActive = true. 이것은 주로 상호 배타적이고 정확하게 보완되는 설명자에 적용됩니다. 활성 / 비활성이 청구서에 맞습니다. "고전압이 아닌"은 예를 들어 "저전압"을 의미 할 수 있거나 "저전압 또는 중전 압"을 의미 할 수 있기 때문에 고전압은 그렇지 않습니다. 후자의 경우 부울 인수는 분명히 적용되지 않습니다. 전자에서는 그렇습니다.
— Flater

2

"set"/ "clear"가 마음에 들지만 문구가 애매 모호하다는 점에주의하십시오. 으로 필립 지적 , 변수에 어떤 값을 쓰는 의미로 취할 수있다 "는 부울 변수가 설정". 그러나 "플래그 설정"이 더 명확합니다.


관련 용어 : 0 / 0이 아닌 정수를 0 / 1 값으로 바꾸는 것을 "부울"이라고 합니다.

실제로 0 / 1 값을 true / false 대신 정수 bool로 사용하는 경우 해당 단어를 사용할 수 있습니다. 그렇지 않으면 컴파일러가 수행 해야하는 작업 비용에 대해 이야기하는 경우에만 나타납니다. (또는 SIMD 비교를 사용하여 수동으로 벡터화하는 경우 각 벡터 요소에서 모두 0/1 비트를 생성합니다).

C 및 C ++에서는 bool암시 적으로 0 또는 1의 정수로 다시 변환 될 수 있으며, 일반적인 구현 bool에서는 0이 아닌 1이 아닌 1 또는 1의 1 바이트 값으로 저장됩니다. 효율적 a && b이기는하지만 실제로는 많은 C 컴파일러가 최적화를 놓쳤다 .


bool booleanize(int a) { return a; }   // C++

이 함수 ret는 대부분의 아키텍처 에서 여러 명령어 (를 포함하지 않음)로 컴파일합니다 . (MIPS는 별개의 플래그 / 조건 코드 레지스터 대신 레지스터 비교 명령을 갖는 흥미로운 예외입니다). x86-64, MIPS 및 ARM thumb 용 Godbolt 컴파일러 탐색기 에서 x86-64 버전은 다음과 같습니다.

    test    edi, edi    # set flags according to   a & a
    setne   al
    ret                 # return value in AL, the low byte of RAX

부울이 무엇인지에 대한이 예제는 약간 큰 주제입니다.


0

" Foobar참으로 설정 "과 " Foobar거짓으로 설정 "은 간단하고 간결 하다고 생각 합니다. 나는 그 문구들에 대한 개별적인 단어들이 있다고 믿지 않으며, 당신이 기술적이고 정확해야 할 때, 때때로 청중을 혼란스럽게하는 것보다 약간의 단어를 쓰는 것이 더 낫습니다.


-1

"설정"은 변수에 값을 할당하는 동작을 설명하는 올바른 방법입니다. 당신이 그것에 대해 pedantic를 원한다면, 당신은 그것을 "지정"이라고 부를 수 있지만 "집합"은 매우 널리 퍼져 있습니다. 실제로 할당을 수행하는 메소드를 작성하는 setFoobar()(및 getFoobar()) 관용적 Java 입니다. C # 1 단계 더 그것에 걸리는 get및 set속성 정의.

"truthify"와 "falsify"를 "암시를 통해, 우리가 부울 변수를 다루고 있다고 알려주십시오"라는 두 번째 요점과 관련하여, 다음과 같이 말할 때 이미 청취자에게 변수가 부울이라고 말합니다.

내가 설정 Foobar에true


1
부울 속성을 반환하는 메소드에 대한 Java의 '표준'은 실제로 다음과 같습니다.isFoobar()
— JimmyJames

-1

어설 션 또는 리 트랙트 도 가장 자주 사용됩니다 (예 : Prolog에서 간단한 변수가 아닌 제안에 대해 이야기 할 때). 일반적으로 부울 값을 갖는 모든 언어 (설정 / 삭제 플래그 또는 비트, 장치 또는 모드 활성화 / 비활성화, 제안 어설 션 / 후퇴 등)에 대해 하나의 일반적인 용어가 아니라 부울이 나타내는 내용에 따라 다른 용어가 있습니다.


나는 이미 다른 것을 의미하는 프로그래머를 제외하고 assert에 동의합니다 (예 : 표현식이 아직 true가 아닌 경우 예외 던지기).
— ChrisW

@ChrisW 나는 당신이 프롤로그를 프로그래밍하는 사람들이 프로그래머가 아니라면 어떻게 생각하는지 모르겠지만, 1972 년 프롤로그에서 사용 되었기 때문에 기존의 의미를 바꾸는 것은 C 매크로입니다.
— 피트 커캄

-1

부울 값을에서 true로 false또는 그 반대로 변경하는 것을 부정 이라고 합니다.

부울 값을로 설정하는 것은 부울 false을 위조 한다고 합니다. 당신이 "진리"라고 말하면 당신을 이해하지만, 이것은 제대로 들리지 않습니다. 동사가 무엇인가를 만들기위한 것이 무엇인지 잘 모르겠 기 true때문에 맞습니다.

"truthify"willy-nilly를 사용하기 전에 더 나은 답변을 가진 사람이 올 때까지 기다릴 것입니다.


1
여기서 문제는 negate , falsifying 이라는 용어를 사용할 수 있지만 각각 toggle 과 reset / clear를 사용 한다는 것 입니다. 사실이 질문을 읽을 때까지 나는 결코 위조 하지 않았습니다 . 어쩌면 나는 나이가 들었을뿐 아니라 올해의 최신 유행 용어에 익숙하지 않습니다 :)
— David Arno

7
'falsify'는 영어에서 부울 변수 사용과 실제로 일치하지 않는 의미를 갖습니다. 당신은 당신이 "위조"있는 거 당신의 변수를 얘기하면 내가 할 수 당신이 말하려고하는지 이해하지만, 난 당신이 그들이 가지고있는 값에 대해 거짓말을하고 있음을 말해 시도로 첫 번째 구문 분석을 것입니다.
— 큐빅

1
"falsifying"과 반대되는 IMO는 영어로 "asserting"이지만, "assert"는 프로그래머에게 잘못된 인상을줍니다.
— ChrisW

-3

하나의 회전을 불리언는 SPST (단극, 단투) 스위치의 전기적 등가 인 에 또는 오프 .


2
" done변수 켜기 "또는 " error변수 끄기"둘 다 적어도 나에게 들리는 소리. 다른 답변에서 제안한 대안은 " done변수 / bool / flag를 [true]로 설정하십시오"또는 " error플래그가 지워졌습니다."
— Sebi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.