PHP 편집자 Zimo가 Sprintf 기능에 대한 질문에 답변해 드립니다. 때때로 우리는 문자열의 형식을 지정하기 위해 Sprintf 함수를 사용해야 하지만 어떤 경우에는 세 가지 다른 포인터 유형의 매개 변수가 있는 상황에 직면할 수 있으며 이러한 매개 변수는 nil일 수 있습니다. 이 경우 삼항 연산자를 사용할 수 없습니다. 그렇지 않으면 코드가 장황해지고 읽기가 쉽지 않습니다. 그렇다면 수십 줄의 긴 코드 작성을 어떻게 피해야 할까요? 다음으로 간단한 해결방법을 알려드리겠습니다.
이 문자열을 sprintf
엔티티에서 변수는 포인터이며 nil
:
name
是 *string
levelcode
具有 *levelcode
종류categorycode
具有 *categorycode
종류하지만 값이 있으면 포인터가 아닌 값을 원합니다. (예: unit abc는 레벨 0이지만 스냅인 카테고리에 속합니다 )
어떤 언어를 사용하든 다음과 같이 쓸 것입니다.
으아아아하지만 go에서는 삼항 연산자를 허용하지 않습니다. nil 값을 처리하지 않으면 sprintf
예외가 발생합니다.
그럼 이렇게 시작해야 하나요?
message := fmt.sprintf("unit %s has a level of %v, but is of category %v", *entity.name, *entity.levelcode, *entity.categorycode)
감사합니다. 여러분의 도움으로 함수를 성공적으로 구축했습니다.
으아아아이렇게 불렀어요
으아아아싱글 하나에 5개의 문장을 작성하는 sprintf
...하지만 효과가 있습니다.
위 내용은 서로 다른 포인터 유형의 인수 3개를 사용하는 Sprintf(nil일 수 있음) 삼항 연산자를 사용할 수 없습니다. 수십 줄을 작성하지 않으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!