Dart In Action - Dar 의 기본 데이터 형식 (1)

8474 단어
앞 에 쓰다
본 고 는 기본적으로 dart 홈 페이지 의 일부 내용 을 번역 하 는 것 입 니 다. 관심 이 없 으 시 면 좌회전 해서 Dart 홈 페이지 로 가세 요. 관심 이 있 는 분 들 은 계속 본문 을 읽 으 세 요.Flutter 튜 토리 얼 여기 있 습 니 다.
숫자.
Dart 의 숫자 는 모두 2 가지 로 나 뉜 다.
  • int 정형 은 64 위 보다 크 지 않 고 구체 적 으로 플랫폼 에 달 려 있다.Dart VM 에서 값 은 - 263 에서 263 - 1. JavaScript 로 컴 파일 된 Dart 는 JavaScript 숫자 를 사용 하여 - 253 에서 253 - 1 의 값 을 허용 합 니 다.
  • double 64 비트 (이중 정밀도) 부동 소수점 은 IEEE 754 기준 으로 규정 한다.
  • int 와 더 블 은 모두 num 의 하위 유형 이다.num 유형 은 기본 연산 자, 예 를 들 어 +, -, / 와 * 를 포함 하고 abs(), ceil()floor() 그리고 다른 방법 을 찾 을 수 있 는 곳 이다.(비트 연산 자, 예 를 들 어 >>, int 클래스 에 정의 되 어 있 습 니 다.) num 과 하위 클래스 가 원 하 는 내용 이 없 으 면 dart: math 라 이브 러 리 에서 원 하 는 것 이 있 을 수 있 습 니 다.
    정 수 는 소수점 이 없 는 숫자 다.다음은 정수 문 자 를 정의 하 는 예제 입 니 다.
    int x = 1;
    int hex = 0xDEADBEEF;
    

    숫자 에 소수 가 포함 되 어 있 으 면, 두 정밀도 이다.다음은 이중 정밀도 숫자 를 정의 하 는 예제 입 니 다.
    double y = 1.1;
    double exponents = 1.42e5;
    

    다음은 문자열 을 숫자 로 바 꾸 는 방법 입 니 다. 반대로 도 마찬가지 입 니 다.
    // String -> int
    var one = int.parse('1');
    assert(one == 1);
    
    // String -> double
    var onePointOne = double.parse('1.1');
    assert(onePointOne == 1.1);
    
    // int -> String
    String oneAsString = 1.toString();
    assert(oneAsString == '1');
    
    // double -> String
    String piAsString = 3.14159.toStringAsFixed(2);
    assert(piAsString == '3.14');
    
    int 유형 은 전통 적 인 위치 이동 (< >), AND (&) 와 OR (|) 연산 자 를 지정 합 니 다.예 를 들 면:
    assert((3 << 1) == 6); // 0011 << 1 == 0110
    assert((3 >> 1) == 1); // 0011 >> 1 == 0001
    assert((3 | 4) == 7); // 0011 | 0100 == 0111
    

    문자 숫자 는 컴 파일 시 상수 입 니 다.많은 산술 표현 식 도 컴 파일 시 상수 입 니 다. 작업 수가 숫자 로 컴 파일 될 때 상수 입 니 다.(주: 표현 식 과 관련 된 변수 도 컴 파일 시 상수 라면 표현 식 도 컴 파일 시 상수 입 니 다.)
    const msPerSecond = 1000;
    const secondsUntilRetry = 5;
    const msUntilRetry = secondsUntilRetry * msPerSecond;
    

    문자열
    Dart 문자열 은 일련의 UTF - 16 코드 유닛 입 니 다.작은 따옴표 나 작은 따옴표 로 문자열 을 만 들 수 있 습 니 다:
    var s1 = 'Single quotes work well for string literals.';
    var s2 = "Double quotes work just as well.";
    var s3 = 'It\'s easy to escape the string delimiter.';
    var s4 = "It's even easier to use the other delimiter.";
    

    표현 식 의 값 을 문자열 에 ${expression} 를 사용 할 수 있 습 니 다.표현 식 이 식별 자 라면 {} 을 건 너 뛸 수 있 습 니 다.대상 에 대응 하 는 문자열 을 가 져 오 려 면 Dart 호출 대상 toString() 방법 입 니 다.
    var s = 'string interpolation';
    
    assert('Dart has $s, which is very handy.' ==
        'Dart has string interpolation, ' +
            'which is very handy.');
    assert('That deserves all caps. ' +
            '${s.toUpperCase()} is very handy!' ==
        'That deserves all caps. ' +
            'STRING INTERPOLATION is very handy!');
    

    주의: = = 연산 자 는 두 대상 이 같은 지 테스트 합 니 다.만약 두 문자열 이 같은 코드 단원 서열 을 포함한다 면, 그것들 은 같은 효 과 를 가진다.
    인접 한 문자열 문자 나 + 연산 자 를 사용 하여 문자열 을 연결 할 수 있 습 니 다:
    var s1 = 'String '
        'concatenation'
        " works even over line breaks.";
    assert(s1 ==
        'String concatenation works even over '
        'line breaks.');
    
    var s2 = 'The + operator ' + 'works, as well.';
    assert(s2 == 'The + operator works, as well.');
    

    여러 줄 문자열 을 만 드 는 또 다른 방법: 작은 따옴표 나 작은 따옴표 가 있 는 삼중 따옴표 사용 하기:
    var s1 = '''
    You can create
    multi-line strings like this one.
    ''';
    
    var s2 = """This is also a
    multi-line string.""";
    

    "raw" 문자열 을 만 들 려 면 앞 에 r 를 추가 할 수 있 습 니 다.
    var s = r'In a raw string, not even 
    gets special treatment.';

    문자열 에 유 니 코드 문 자 를 표시 하 는 방법 에 대한 자세 한 정 보 는 Runes 를 참조 하 십시오.
    텍스트 문자열 은 컴 파일 시 상수 입 니 다. 모든 플러그 인 표현 식 이 컴 파일 시 상수 라면 null 또는 수치, 문자열 또는 불 값 입 니 다.
    //    const String    .
    const aConstNum = 0;
    const aConstBool = true;
    const aConstString = 'a constant string';
    
    //    const String     .
    var aNum = 0;
    var aBool = true;
    var aString = 'a string';
    const aConstList = [1, 2, 3];
    
    const validConstString = '$aConstNum $aConstBool $aConstString';
    // const invalidConstString = '$aNum $aBool $aString $aConstList';
    

    문자열 사용 에 대한 더 많은 정 보 는 문자열 과 정규 표현 식 을 참조 하 십시오.
    불 값
    Dart 는 불 값 을 표시 하기 위해 bool 이라는 유형 이 있 습 니 다.두 대상 만 bool 유형 을 가지 고 있다. truefalse 모두 컴 파일 시 상수 이다.
    Dart 의 유형 안전 은 if(nonbooleanValue) 또는 assert(nonbooleanValue) 등 코드 를 사용 할 수 없다 는 것 을 의미 합 니 다.반면 검사 치 를 명 확 히 하 는 것 은 다음 과 같다.
    // Check for an empty string.
    var fullName = '';
    assert(fullName.isEmpty);
    
    // Check for zero.
    var hitPoints = 0;
    assert(hitPoints <= 0);
    
    // Check for null.
    var unicorn;
    assert(unicorn == null);
    
    // Check for NaN.
    var iMeantToDoThis = 0 / 0;
    assert(iMeantToDoThis.isNaN);
    

    리스트
    아마도 거의 모든 프로 그래 밍 언어 에서 가장 흔히 볼 수 있 는 집합 은 배열 이나 질서 있 는 대상 그룹 일 것 이다.Dart 에 서 는 배열 이 List 대상 이기 때문에 대부분의 사람들 은 목록 이 라 고 만 부른다.
    Dart 목록 문 자 는 JavaScript 배열 문자 처럼 보 입 니 다.이것 은 간단 한 Dart List 입 니 다.
    var list = [1, 2, 3];
    

    메모: 분석 기 추정 목록 의 유형 은 List 입 니 다.이 목록 에 정수 가 아 닌 대상 을 추가 하려 고 시도 하면 분석 기 나 실행 중 오류 가 발생 할 수 있 습 니 다.더 많은 정보 에 대해 서 는 유형 을 읽 고 추측 하 십시오.List 는 0 에서 시작 하 는 색인 을 사용 합 니 다. 그 중에서 0 은 첫 번 째 요소 의 색인 입 니 다. list.length - 1 은 마지막 요소 의 색인 입 니 다.JavaScript 에서 처럼 목록 의 길 이 를 가 져 오고 목록 요 소 를 참조 할 수 있 습 니 다.
    var list = [1, 2, 3];
    assert(list.length == 3);
    assert(list[1] == 2);
    
    list[1] = 1;
    assert(list[1] == 1);
    

    컴 파일 할 때 상수 목록 을 만 들 려 면 목록 텍스트 전에 추가 하 십시오 const:
    var constantList = const [1, 2, 3];
    // constantList[1] = 1; //          。
    

    List 형식 은 목록 을 조작 하 는 데 편리 한 방법 이 많 습 니 다.목록 에 대한 더 많은 정 보 는 범 형 과 집합 을 참조 하 시기 바 랍 니 다.
    반사
    일반적으로 매 핑 은 키 와 값 이 있 는 대상 이다.키 와 값 은 모든 종류의 대상 이 될 수 있 습 니 다.키 당 한 번 만 나타 나 지만 같은 값 을 여러 번 사용 할 수 있 습 니 다.Dart 의 Map 은 맵 텍스트 와 Map 을 지원 합 니 다.
    간단 한 Dart 맵 이 몇 개 있 습 니 다. map 텍스트 로 만 듭 니 다:
    var gifts = {
      // Key:    Value
      'first': 'partridge',
      'second': 'turtledoves',
      'fifth': 'golden rings'
    };
    
    var nobleGases = {
      2: 'helium',
      10: 'neon',
      18: 'argon',
    };
    

    주의: 분석 기 추정 gifts 의 유형 은 Map 이 고 nobleGases 의 유형 은 Map 입 니 다.임의의 맵 에 오류 형식의 값 을 추가 하려 고 시도 하면 분석 기 나 실행 중 오류 가 발생 할 수 있 습 니 다.더 많은 정보 에 대해 서 는 유형 을 읽 고 추측 하 십시오.
    Map 구조 함수 로 같은 대상 을 만 들 수 있 습 니 다:
    var gifts = Map();
    gifts['first'] = 'partridge';
    gifts['second'] = 'turtledoves';
    gifts['fifth'] = 'golden rings';
    
    var nobleGases = Map();
    nobleGases[2] = 'helium';
    nobleGases[10] = 'neon';
    nobleGases[18] = 'argon';
    

    주의: new Map() 뿐만 아니 라 Map() 보고 싶 을 수도 있 습 니 다.Dart 2 부터 new 키 워드 를 선택 할 수 있 습 니 다.상세 한 정 보 는 구조 함 수 를 참조 하 시기 바 랍 니 다.JavaScript 에서 처럼 새로운 키 쌍 을 기 존 맵 에 추가 합 니 다:
    var gifts = {'first': 'partridge'};
    gifts['fourth'] = 'calling birds'; //        
    

    자바 스 크 립 트 와 같은 방식 으로 맵 에서 값 을 검색 합 니 다:
    var gifts = {'first': 'partridge'};
    assert(gifts['first'] == 'partridge');
    

    맵 에서 저장 되 지 않 은 키 를 찾 으 면 되 돌아 갑 니 다 null:
    var gifts = {'first': 'partridge'};
    assert(gifts['fifth'] == null);
    
    .length 를 사용 하여 Map 키 쌍 의 수량 을 가 져 옵 니 다:
    var gifts = {'first': 'partridge'};
    gifts['fourth'] = 'calling birds';
    assert(gifts.length == 2);
    

    컴 파일 시 상수 맵 을 만 들 려 면 맵 전에 추가 하 십시오 const:
    final constantMap = const {
      2: 'helium',
      10: 'neon',
      18: 'argon',
    };
    
    // constantMap[2] = 'Helium'; //          。
    

    맵 에 대한 더 많은 정 보 는 범 형 과 맵 을 참조 하 시기 바 랍 니 다.

    좋은 웹페이지 즐겨찾기