반응형

Casting 9

Why don't Java's +=, -=, *=, /= compound assignment operators require casting?

Until today, I thought that for example: i += j; Was just a shortcut for: i = i + j; But if we try this: int i = 5; long j = 8; Then i = i + j; will not compile but i += j; will compile fine. Does it mean that in fact i += j; is a shortcut for something like this i = (type of i) (i + j)? As always with these questions, the JLS holds the answer. In this case §15.26.2 Compound Assignment Operators..

문자열이 숫자(float)인지 어떻게 확인합니까?

질문자 :Daniel Goldberg 파이썬에서 문자열을 숫자로 표현할 수 있는지 확인하는 가장 좋은 방법은 무엇입니까? 현재 내가 가지고 있는 기능은 다음과 같습니다. def is_number(s): try: float(s) return True except ValueError: return False 추하고 느릴 뿐만 아니라 투박해 보입니다. float 를 호출하는 것이 훨씬 더 나빴기 때문에 더 나은 방법을 찾지 못했습니다. 부동 소수점 대신 (양수, 부호 없는) 정수를 구문 분석하려는 경우 문자열 객체에 isdigit() >>> a = "03523" >>> a.isdigit() True >>> b = "963spam" >>> b.isdigit() False 문자열 메서드 - isdigit() : ..

etc./StackOverFlow 2022.01.02

일반 캐스트 대 static_cast 대 dynamic_cast [중복]

질문자 :Graeme Perrow 이 질문에는 이미 답변이 있습니다 . static_cast, dynamic_cast, const_cast 및 reinterpret_cast는 언제 사용해야 합니까? (9개 답변) 7년 전 문을 닫았습니다 . 저는 거의 20년 동안 C 및 C++ 코드를 작성해 왔지만 이러한 언어의 한 측면에서 제가 정말 이해하지 못한 부분이 있습니다. 나는 분명히 일반 캐스트를 사용했습니다. MyClass *m = (MyClass *)ptr; 도처에 있지만 두 가지 다른 유형의 캐스트가 있는 것 같으며 차이점을 모르겠습니다. 다음 코드 줄의 차이점은 무엇입니까? MyClass *m = (MyClass *)ptr; MyClass *m = static_cast(ptr); MyClass *m ..

etc./StackOverFlow 2021.12.24

C#의 enum에서 int 값 가져오기

질문자 :jim Questions (복수형)이라는 수업이 있습니다. 이 클래스에는 다음과 같은 Question public enum Question { Role = 2, ProjectFunding = 3, TotalEmployee = 4, NumberOfServers = 5, TopBusinessConcern = 6 } Questions 클래스에는 foo Questions 객체를 반환하는 get(int foo) 함수가 있습니다. 다음과 같이 할 수 있도록 열거형에서 정수 값을 얻는 쉬운 방법이 있습니까? Questions.Get(Question.Role) 열거 형을 캐스팅하십시오. 예 int something = (int) Question.Role; int 이므로 위의 내용은 야생에서 볼 수 있는 대부분..

etc./StackOverFlow 2021.12.20

malloc의 결과를 캐스팅합니까?

질문자 :Patrick McDonald 이 질문 에서 누군가 가 내가 malloc 의 결과 를 캐스팅 하지 말아야 한다고 주석 에서 제안 했습니다 . 즉, 나는 이것을해야합니다 : int *sieve = malloc(sizeof(int) * length); 보다는: int *sieve = (int *) malloc(sizeof(int) * length); 왜 그럴까요? TL;DR int *sieve = (int *) malloc(sizeof(int) * length); 두 가지 문제가 있습니다. 캐스트하고 sizeof에 대한 인수로 변수 대신 유형을 사용하고 있습니다. 대신 다음과 같이 하십시오. int *sieve = malloc(sizeof *sieve * length); 긴 버전 아니요 ; 다음과 ..

etc./StackOverFlow 2021.11.19

static_cast, dynamic_cast, const_cast 및 reinterpret_cast는 언제 사용해야 합니까?

질문자 :e.James 다음의 적절한 용도는 무엇입니까? static_cast dynamic_cast const_cast reinterpret_cast C 스타일 캐스트 (type)value 함수형 캐스트 type(value) 어떤 특정한 경우에 어떤 것을 사용할지 어떻게 결정합니까? static_cast 는 사용을 시도해야 하는 첫 번째 캐스트입니다. 유형 간의 암시적 변환(예: int 에서 float 또는 포인터 void* )과 같은 작업을 수행하고 명시적 변환 함수(또는 암시적 변환 함수)를 호출할 수도 있습니다. 대부분의 경우 명시적으로 static_cast 명시할 필요는 없지만 T(something) 구문은 (T)something 과 동일하므로 피해야 합니다(나중에 자세히 설명). 그러나 T(s..

etc./StackOverFlow 2021.11.09

어떻게 int를 열거형으로 캐스팅할 수 있습니까?

질문자 :lomaxx C#에서 int enum 으로 캐스팅하는 방법은 무엇입니까? 정수에서 : YourEnum foo = (YourEnum)yourInt; 문자열에서: YourEnum foo = (YourEnum) Enum.Parse(typeof(YourEnum), yourString); // The foo.ToString().Contains(",") check is necessary for enumerations marked with an [Flags] attribute if (!Enum.IsDefined(typeof(YourEnum), foo) && !foo.ToString().Contains(",")) { throw new InvalidOperationException($"{yourString} i..

etc./StackOverFlow 2021.10.09

Java의 +=, -=, *=, /= 복합 할당 연산자에 캐스팅이 필요하지 않은 이유는 무엇입니까?

질문자 :Honza Brabec 오늘까지는 예를 들어 다음과 같이 생각했습니다. i += j; 바로가기: i = i + j; 그러나 우리가 이것을 시도한다면: int i = 5; long j = 8; 그런 다음 i = i + j; 컴파일되지 않지만 i += j; 잘 컴파일됩니다. i += j; 의미합니까? i = (type of i) (i + j) 와 같은 것에 대한 단축키입니까? 이러한 질문에 항상 그렇듯이 JLS가 답을 가지고 있습니다. 이 경우 §15.26.2 복합 할당 연산자 . 추출물: E1 op= E2 형식의 복합 할당 표현식은 E1 = (T)((E1) op (E2)) 와 동일합니다. 여기서 T E1 의 유형입니다. 단, E1 은 한 번만 평가됩니다. §15.26.2 에서 인용한 예 [...]..

etc./StackOverFlow 2021.10.06
반응형