Skip to content

Variables

Seonghong Min edited this page Feb 4, 2020 · 7 revisions
  • Variable (변수)
  • Array (배열, 고정크기)
  • ArrayList (가변크기배열)

  • Variable (변수)

    • double, int, string, datetime 형이 존재함
      • 선언 후, 초기화 없이 사용할 수 없음
      • 변수명은 영문자, _, $로만 시작
    • 선언된 변수만 사용가능하여아 하며, 선언과 동시에 초기화 가능
      • int cnt = 0
      • datetime expireDate = 1520000000
      • string msg = "success"
      • double xx = 3.45, yy = 5.5
      • int k = 5, y, z = 7 → 이 경우 변수 y는 초기화 되지 않았음
      • 선언과 동시에 초기화할 때, 함수의 리턴 값으로 초기화 가능
        • double xx = addNums(parma1, param2)
    • 전역 변수
      • 함수 밖에서 선언됨
      • 스크립트 수행중 값이 변경된 경우, 변경된 값을 저장함.
    • 로컬 변수의 생명주기(lifecycle)
      • 함수 내부의 For/If 등의 블록안에서 변수가 선언된 경우에, 해당 블록을 벗어난 후에도 변수가 메모리에 남아있음.
      • 함수 안의 로컬 변수는 선언 위치와 관계없이, 해당 함수가 종료된 후, 메모리에서 제거됨.
    • double 형
      • 소숫점 처리

        • int 형 변수에 값을 할당하면, 내림(floor)값으로 저장됨
          • k = 2.55 : 변수 k의 값은 2가 됨.
        • 내부 연산은 double형을 기준으로 이루어지나, binary로 저장될 때에 소숫점 6자리까지만 반영
          • LEN_DECIMAL_POINTS 값을 통해 유효 소숫점 자릿수 지정가능
          • 부동소숫점(c++ 기준) 표현으로 오차에 주의 필요
      • bool type은 현재 지원하지 않음.

        • double 형을 이용하여 1.0 = true, 0.0 = false(실제로는 1이 아닌 경우, 모두 false)의 의미로 사용 가능
    • int 형
      • double, datatime와 연산가능
    • datetime 형(uint형식과 비슷)은 시간값을 저장하기 위한 변수임
      • datetime timeNow = system.now
      • unix time으로 초 기준임
      • datetime간 연산은 불가능하며, int형과의 더하기/빼기 연산 가능
        • 주의: 덧셈/뺄셈 연산시, int형 값을 seconds(초) 값으로 간주하여 계산
    • string 형
      • string msg = 'precess success!'
      • msg.length() : 문자열의 길이 반환
      • string형을 제외한 나머지 타입은 변수명.toString()를 사용하여, string형으로 변환 가능

  • Array (배열)
    • double, int, string형 변수를 1차원 배열로 만들수 있음.
      • 배열 선언시 최대 10000개 크기로 생성 가능 (추후 변경될 수 있음)
      • 메모라 주소 (함수 + 전역 변수 + 전역 배열 개수의 합) 값은 최대 60000개까지 허용 (추후 변경될수 있음)
    • 변수 키워드로 선언하며, 선언시 정수형으로 크기를 지정해야됨.
      • ex) int numList[5] : int형으로 5개짜리 배열 생성되며 0으로 초기화됨
    • 선언시 첨자(배열 크기를 지정)로 수식(혹은 변수) 사용 불가
      • 현재 스크립트 분석 단계에서 사용할 메모리 크기를 미리 확정해야되기 떄문에 변수나 수식 사용 불가
    • 배열 선언시 자동으로 초기화됨. (전체 초기값 할당 불가)
      • int, double type은 0, string은 ""
    • 내부함수
      • 배열명.size() : 배열의 크기값(int type)을 반환
      • 배열명.indexOf(search_value, start_index, search_range) : 배열안에서 특정 값이 존재하는 인덱스(int type) 값을 반환
        • search_value는 배열의 타입과 일치해야 되며, start_index는 배열에서 검색을 시작할 인덱스(위치)로 int type임.
        • start_index 및 search_range는 생략가능하며, 생략할 경우, 처음(0번 인덱스)부터 끝까지 검색함.
        • 찾을 수 없을 경우, -1을 반환
      • 배열명.resize(new_size) : 배열의 크기를 변경함.
        • 크기가 커질 경우, 확장된 영역에는 초기값으로 추가됨.
        • 크기가 작아질 경우, 기존 데이터가 삭제됨.

  • ArrayList (가변크기배열)
    • 현재 double, int, string형 변수를 벡터로 선언할 수 있음
      • 선언형식: vector<type> name
    • 내부함수
      • arrayList_name.size() : 배열의 크기값(int type)을 반환
      • arrayList_name.indexOf(search_value, start_index, search_range) : arrayList에서 특정 값이 존재하는 인덱스(int type) 값을 반환
        • search_value는 벡터의 타입과 일치해야 되며, start_index는 arrayList에서 검색을 시작할 인덱스(위치)로 int type임.
        • start_index 및 search_range는 생략가능하며, 생략할 경우, 처음(0번 인덱스)부터 끝까지 검색함.
        • 찾을 수 없을 경우, -1을 반환
      • 'arrayList_name.add(T, num_items)' : 벡터의 끝에 변수를 추가
        • num_items을 생략할 경우, 1임.
      • 'arrayList_name.insert(T, idx, num_items)' : 지정된 index에 변수를 추가
        • num_items을 생략할 경우, 1임.
      • 'arrayList_name.remove(idx, num_items)' : 지정된 index의 요소를 삭제
        • num_items을 생략할 경우, 1임.
      • 'arrayList_name.clear()' : 모든 요소를 삭제함.
Clone this wiki locally