내가
std::string
를 사용하여 사이에 선택을해야 할 때 나는 혼란 스러워요 등을 처리 할 수
또는
Value
어떤 상황에서 Value를 std :: string보다 높게 사용해야합니까?
내가
std::string
를 사용하여 사이에 선택을해야 할 때 나는 혼란 스러워요 등을 처리 할 수
또는
Value
어떤 상황에서 Value를 std :: string보다 높게 사용해야합니까?
Value
개체를 잘못 이해했다고 생각합니다.
적인 Cocos2D :: 가치는 많은 프리미티브 ([...] 및 표준 : : 문자열) 플러스 [...]
의 래퍼 클래스는 다음과 같습니다 설명서에 기록 된대로 당신이에 연결 그래서 실제로 Value
은 다른 유형의 변수를 래핑하는 객체로, ValueMap
(문자열의 해시는 Values
- 각 Value
은 다른 유형의 객체가 될 수 있음)과 같은 느슨하게 유형화 된 구조를 가질 수 있습니다. ValueVector
(목록은 Values
입니다.)
예를 들어 문자열이 모두 있지만 값이 다른 키를 사용하여 구성 해시를 만들려면 - 바닐라 C++에서 원하는 값 유형별로 별도의 데이터 구조를 만들어야합니다 저장하지만, Value
당신은 다만 할 수 있습니다
unordered_map<std::string, cocos2d::Value> configuration;
configuration["numEnemies"] = Value(10);
configuration["gameTitle"] = Value("Super Mega Raiders");
그것은 강력한 형식의 언어입니다 C에서 일부 느슨한 타이핑 ++ 만들 단지 메커니즘입니다.
당신은 이런 식으로 뭔가가있는 값에 문자열을 저장할 수 있습니다
std::string name = "Vidur";
Value nameVal = Value(name);
을 그리고 나중에 그것을 검색 :
std::string retrievedName = nameVal.asString();
잘못된 유형으로 Value
을 구문 분석하려고하면, 컴파일러가 알아낼 수있는 것이 아니기 때문에 런타임에 오류가 발생합니다.
질문이 있으면 알려주세요.