반응형

이번 스터디 부터는 내용이 쫌 길다.

듣고있는 강의의 시간이 점점 길어지면서 그냥 바로 Flutter로 넘어가고 싶지만...

아무리 경력개발자여도 기초는 무시하면 안되는 법....

이번 포스팅은 선언자에 관한 내용.

정해진 값이 명확하지 않을때 사용하여 최초 할당된 값에 따라 변화하는 var타입과

단어 그 자체로 변동성이 있는 dynamic에 대해서다.

자세한 건 아래 코드블럭을 참고하고, 아래 dart 구문을 돌리기 위한 준비물인 웹컴파일러는 

첫번째 포스팅을 참조바람 => Dart언어공부- 01.HelloWorld

 

//06.var, dynamic 타입
//언제나 그렇듯 자바의 psvm처럼 main부터 시작.
void main() {
  //기존처럼 var로 선언하여 문자열 할당.
  var name = '임의값';
  print(name);
  
  //이번에는 var로 선언하여 숫자값을 할당
  var number = 2;
  print(number);
  
  
  //문자열로 사용하겠다고 선언 후, 숫자값을 할당한다면 당연히 불가능하다.
  //String number2 = 2;
  
  //var선언자는 내가 할당한 값에 의해 타입이 정해진다.
  
  //위에 var로 선언 후, 다시 문자열을 재할당 해보자.
  name = '임의값 변동';
  //문제없이 변경된 값으로 추출된다.
  print(name);
  
  //이번에는 숫자값을 넣어보자.
  //해당변수를 처음 선언 후 할당된 값은 문자열.
  //숫자값을 할당하려 하면 당연히 오류가 발생한다.
  //이미 name변수는 문자열 타입으로 지정되었기 때문.
  //name = 1;
  //print(name);
  
  
  
  //이번에는 dynamic이라는 선언자를 살펴보자.
  dynamic _name = '다이나믹값';
  //var선언자를 사용했을때 처럼 문제없이 출력된다.
  print(_name);
  
  //var타입에서는 아래처럼 숫자를 넣었을땐 오류가 발생했지만
  //dynamic선언자를 사용하면 오류없이 값의 종류를 바꿀수 있다.
  //dynamic은 이 처럼 할당된 변수값의 종류에 영향없이 타입이 변경되는 선언자라고 할수있다.
  _name = 1;
  print(_name);
    
  //그런데 var선언자의 한가지 특이한 점이 있다.
  //var를 사용하는데, 이번에는 변수를 할당하지 않고 선언해보자.
  var _named;
  
  _named = 'dynamic?';
  print(_named);
  
  //최초 선언시 값을 할당해주면, 타입이 지정되지만 (초기화하지 않는다고 표현함.)
  //그렇지 않고 이 후에 값을 지정해주면 마치 dynamic처럼 값의 타입이 변동된다.
  
  //위에 문자열을 넣었지만, 아래와 같이 숫자값을 넣는다면?
  _named = 1;
  //문제없이 기능이 동작한다.
  print(_named);
  
  //그러면, int나 String, double이런거 없이 그냥 편하게 var나 
  //아니면 더 간단하게 dynamic로 쓰면 되는거 아닌가? 하겠지만
  
  //프로그램을 만들다 보면 선언된 변수를 사용할 때, 숫자로 처리되어야 하는
  //변수값이 갑자기 문자열로 변경이 된다거나, 하는 일이 발생될수 있다.(오류발생)
  //또한 추후 내가 유지보수를 하거나 다른사람이 봤을때, 용도의 명확성을 알려주기 위해서도
  //확실한 선언자를 사용하는것이 좋다.
  //물론 내 생각이기도 한데, 대부분의 회사가 그렇게함.
  
}

 

자 그럼 결과물은?

임의값
2
임의값 변동
다이나믹값
1
dynamic?
1

다음 공부는 기다리고 기다리던 자료구조다.

처음엔 다른언어 기초부터 다시 배울생각에, 막막하기도 하고 지루할거같기도 했는데

막상해보니 재밌다.

 

한가지 진짜 확실한 건, 언어 한가지만 제대로 해두면 다른 언어 배우는 속도는 2배인거같다.

(프로그래밍 언어에 한함..)

반응형
반응형

지난 포스팅 "Dart언어공부-04.자료형(문자)"에 이은 이번에는 참과 거짓을 표현하는 boolean 에 대한 공부.

스타트.

여태 공부했던 숫자형 int, double과 문자형 String 외에

참과 거짓을 표현하는 boolean타입의 자료형이 있다.

사용은 true와 false두가지를 사용한다.

자세한건 아래 코드블럭 참고.

※준비물(웹컴파일러)은 Dart언어공부- 01.HelloWorld 포스팅에 가보면 써있음.

//05.자료형 Boolean true or false
void main() {
  //글자의 경우 따옴표 안에 처리하지만, boolean 참 거짓 값은 아래와 같이 할당한다.
  //대문자도 안된다. 소문자로 처리한다.
  bool isTrue = true;
  bool isFalse = false;
  
  print(isTrue);
  print(isFalse);
}

 

결과물은?

true
false

 

지금 당장은 변수에 담아서 어디에 쓰지? 라는 생각이 들 수 있다.

주로 if문 같은 조건문에 사용하게 되는데, 조건문은 다다~음 공부에 포함될 예정.

 

 

반응형
반응형

지난 공부 "Dart언어공부-03.자료형(숫자)"

이어서 이번에는 문자열 자료형을 사용하는 변수 공부.

스타트.

 

문자열을 의미하는 String 은 다른 선언과 다르게 대문자로 시작해야한다. (int, double ..e.g)

문자열 변수이기 때문에 무조건 따옴표에 넣어서 하며, 따옴표 종류는 혿따옴표나 쌍따옴표 상관없고, 

대신 같은걸로 써야한다.

 

바로 아래 코드를 작성해서 확인해보자.

※준비물(웹컴파일러)은 Dart언어공부- 01.HelloWorld 포스팅에 가보면 써있음.

//04.String 문자열.
void main(){
  String name = '문자열값';
  
  print(name);
  
  String name2 = '철수';
  String sentence = '는 학교갑니다.';
  
  //아래의 결과값으로 보면 알겠지만, 숫자형(int, double)과는 다르게 문자열은 이어지는 것을 볼수있다.
  print(name2 + sentence);
  
  //$를 붙이면 따옴표 안에서도 변수명으로 인식되어 처리된다. => 아래와 같이 처리할수도 있다.
  //String 만 되는것은 아니다.
  print('$name2$sentence');
  
  //기본적으로 숫자형과 문자형은 합쳐질 수 없지만, 아래와 같이 '$변수' 형식을 사용하면 붙여서 가능하다.
  //여태 경험상 어디에 필요할지는 잘 모르겠다... 그냥 이렇게 붙어버리면, 나중에 잘못사용해도 넘어갈거같긴하다.
  int count = 5;
  String sentence2 = '친구들은 총 $count명 입니다.';
  
  
  print(sentence2);
    
}

 

결과물은?

문자열값
철수는 학교갑니다.
철수는 학교갑니다.
친구들은 총 5명 입니다.

 

문자열 변수 공부 끝.

※$를 사용해서 나중에 클래스 명에 붙이는것을 봤는데, $에 담아둔값을 class $commonClassName01 뭐 이런식으로 

쓰게된다면 이름 충돌은 피할수 있다는 글들을 봤는데, 아직까지는 감이 안온다.

조금 더 공부하면서 익혀야 할듯.

반응형
반응형

모든 언어에는 변수라는 것이 존재한다. 이전 포스팅에도 설명했지만

일종의 그릇 정도?로 생각하는 것이 좋겠다. 아니면 보관함정도.

 

하지만 그 그릇도 용도가 명확하지 않으면 구분없이 막 담게 되므로 문제가 생길수 있다.

예를들어 음식을 담기위한 용도의 그릇인데 거기에 고철이나 오물, 화학용액 등 아무거나 담으면 안되기 때문이다.

 

"이 그릇은 국을 담기위한 음식 그릇이야"라고 알려주듯이 컴퓨터에게도 비슷한 맥락으로 알려줘야 한다.

이 변수는 숫자형이야, 문자형이야~ 이렇게

 

이번에는 숫자형변수 연습이다.

기타 설명은 아래 소스코드의 주석을 참조.

아래 코드 입력 후, 결과를 실행해보자.

※준비물은 Dart언어공부- 01.HelloWorld 포스팅에 가보면 써있음.

//정수-int,실수double
void main(){
  //어떤 변수를 쓸지 정확하지 않을때 쓰는 var
  //정확하게 지정하려면? 숫자인지 문자인지 범위를 고려하여 선언한다.
  int number1 = 12;
  print(number1);
  
  int number2 = 38;
  print(number2);
  
  print(number1 + number2);
  print(number1 - number2);
  print(number1 * number2);
  print(number1 / number2);
  
  print('--------------------');
  
  //이번에는 실수.  소숫점을 표현해보자.
  
  double number3 = 2.5;
  double number4 = 0.5;
  
  print(number3);
  print(number4);
  
  //정수는 실수에 포함되기 때문에 정수를 double에 넣어도 괜찮다.
  double number5 = 12;
  
  //하지만? - 정수에는 실수보다 아래이며, 포함되지 않기때문에 넣으려고 하면 오류가 발생한다.
  
  //int number6 = 2.5;
  
  print('--------------------');
  
  print(number3 + number4);
  print(number3 - number4);
  print(number3 * number4);
  print(number3 / number4);
  
  
}

 

결과는?

12
38
50
-26
456
0.3157894736842105
--------------------
2.5
0.5
--------------------
3
2
1.25
5

 

3강 숫자형 변수 공부 끝

반응형

+ Recent posts