컴퓨터 공부/🩵 Flutter

[Flutter] 4. 취미로 배워보는 Flutter - 데이터 타입, numbers, strings, boolean

letzgorats 2024. 6. 17. 00:38

https://dartpad.dev/

 

DartPad

 

dartpad.dev


오늘도 DartPad에서 따라쳐봅시다.

다트에서 데이터 타입은 뭘까? 뭐 사실 다 똑같습니다. 뭐 데이터 타입은 프로그래밍 언어의 기본적인 구성요소이지 않겠습니까!?

데이터 타입의 기본적인 내용과 데이터 타입의 종류는 크게 기본타입, 참조타입 나눠지는데요, 이건 제가 예전에 포스팅한 자바스크립트 포스팅을 참고해보시죠!

 

Javascript 기본 - 1) 자바스크립트 JS 기초

- console 객체는 아무 전역 객체에서나 접근할 수 있다. - time과 timeEnd의 매개변수에는 똑같은 문자열을 넣어줘야 한다. - 자바스크립트에서 변수를 선언할 때, var, let, const를 사용한다. 1. [변수 선

letzgorats.tistory.com


일단, Dart 언어에서 마찬가지로 변수에 .(dot)을 찍으면 해당 객체에서 사용할 수 있는 메서드들이 나와요. 아래와 같이 말이죠.

DartPad 에서 .(dot)을 찍으면 해당객체에서 사용할 수 있는 메서드들을 볼 수 있습니다 ㅎㅎ

void main() {
  
  var myName = "Aloo";
  print(myName);
  print(myName.length);
  print(myName.toUpperCase());
  var myUpperName = myName.toUpperCase();
  print(myUpperName);
}

결과


 

Numbers

int : 정수 값을 나타내는 데 사용, 소수점 포함 X

double : 부동 소수점 O, 소수점 이하의 숫자도 포함될 수 있음

int myInt = 42;
double myDouble = 42.5;

 

메모리 사용량 측면에서 int는 double보다 메모리를 덜 사용하긴 해요. double은 부동 소수점을 저장하기 위해 더 많은 메모리를 사용하니까요! 그래서 연산 측면에서도 int가 조금 더 빨라요 

void main() {
  
  int numberOne = 13;
  
  double numberTwo = 12.1;
  
  var expNum = 1.2e3;
  print(expNum);
  
  print(numberOne);
  print(numberTwo);
  
  var stringNum = "14.7";
  print(stringNum);
  print(stringNum.runtimeType);
  
  var convertedNum = double.parse(stringNum);
  print(convertedNum);
  print(convertedNum.runtimeType);
}

출력결과

 

runtimeType 이라는 메서드가 있는데, 이는 해당 자료형이 어떤 데이터 타입인지 알려주는 거에요.

그리고 Dart에서 parse 메서드는 문자열을 특정 타입으로 변환하는 데 사용하는 메서드에요.

int.parse : int.parse 메서드는 문자열을 정수로 변환해요!

    1. 기본 사용법

int result = int.parse('123');
// result는 123

 

 

    2. 잘못된 입력 처리

 

변환할 수 없는 문자열이 입력되면 FormatException이 발생한다고 하네요!

try {
  int result = int.parse('abc');
} catch (e) {
  print('Error: $e');
}
// Error: FormatException: Invalid radix-10 number

 

    3. 기본값 제공: onError 콜백을 사용하여 기본값을 제공할 수 있어요.

int result = int.parse('abc', onError: (source) => -1);
// result는 -1

 

    4. 기수 지정: 두 번째 매개변수 기수를 지정할 수 있습니다. (파이썬에서도 int('1010',2) 하면 2진수 스트링을 십진수로 변환하듯이!)

int result = int.parse('1010', radix: 2);
// result는 10 (2진수 1010을 10진수로 변환)

double.parse : double.parse 메서드는 문자열을 부동 소수점 숫자로 변환해요!

  1. 기본 사용법
double result = double.parse('123.45');
// result는 123.45

 

    2. 잘못된 입력 처리

 

변환할 수 없는 문자열이 입력되면 FormatException이 발생한다고 하네요!

try {
  double result = double.parse('abc');
} catch (e) {
  print('Error: $e');
}
// Error: FormatException: Invalid double

 

    3. 과학적 표기법 지원: 과학적 표기법을 사용한 문자열도 변환할 수 있어요. e2 = 10^2 겠죠?

double result = double.parse('1.23e2');
// result는 123.0

공통 특징

  1. 안전한 변환: tryParse 메서드를 사용하면 변환에 실패했을 때, null 을 반환하여 안전하게 처리할 수 있어요. try-catch 를 따로 설정해서 오류를 생각할 필요없이 그냥 그 변수에 null 값이 들어간다는 소리죠. 
int? intResult = int.tryParse('123');
double? doubleResult = double.tryParse('123.45');

int? invalidInt = int.tryParse('abc'); // invalidInt는 null
double? invalidDouble = double.tryParse('abc'); // invalidDouble은 null

 

    2. 예외 처리: parse 메서드를 사용할 때는 try-catch 구문을 사용하여 예외를 처리할 수 있어요!

try {
  int result = int.parse('123');
} catch (e) {
  print('Error: $e');
}

 

parse 메서드는 문자열을 숫자로 변환할 때 매우 유용하지만, 항상 입력값의 유효성을 확인하고 적절한 예외 처리를 해야 해요!

 


Numbers Exercise

문제를 풀어보자!😁

void main() {
//  Given the double below, assign it 
//  to a new variable where its rounded to the 
//  nearest integer. 
var someNum = 3.1;
 
  
}
// BONUS QUESTION; In the cases of 0.5, how can you
// ensure its rounded up or down?

 

더보기
void main() {
//  Given the double below, assign it 
//  to a new variable where its rounded to the 
//  nearest integer. 
var someNum = 3.1;

int roundNum = someNum.round();
print(roundNum);

// BONUS QUESTION; In the cases of 0.5, how can you
// ensure its rounded up or down? -> up!

var num = 0.5;
print(num.round()); // 결과는 1이 나온다.
 
}

 

출력 결과

 

 

 

 


Strings

 

 

    1. 문자열 생성

  • 큰따옴표나 작은따옴표를 사용하여 문자열을 생성할 수 있어요.
String singleQuote = 'Hello, Dart!';
String doubleQuote = "Hello, Dart!";

 

   

    2.문자열 연결

  • + 연산자를 사용하거나, ${}를 사용하여 문자열을 연결할 수도 있어요.
String name = 'Dart';
String greeting = 'Hello, ' + name + '!';
String greeting2 = 'Hello, ${name}!';

 

 

    3. 문자열 길이

  • length 속성을 사용하여 문자열의 길이를 확인할 수 있어요.
String name = 'Dart';
String greeting = 'Hello, ' + name + '!';
String greeting2 = 'Hello, ${name}!';

 

 

    4. 문자열 비교

  • == 연산자를 사용하여 문자열을 비교할 수 있어요.
String str1 = 'Hello';
String str2 = 'Hello';
bool isEqual = str1 == str2; // true

 

  

    5. 다양한 메소드

  • substring, indexOf, toLowerCase, toUpperCase, trim 등 문자열을 조작할 수 있는 다양한 메소드가 있습니다!
String str = '  Dart Programming  ';
String trimmedStr = str.trim(); // 'Dart Programming'
String upperStr = str.toUpperCase(); // '  DART PROGRAMMING  '

 


 

 
void main() {

  var nameOne = 'Aloo';
  print(nameOne);
  String nameTwo = 'Coding';
  
  var myPrice = 10;
  print("Price is \$$myPrice");
  
  print("The name of myBlog is \"${nameOne} ${nameTwo}\" ");
  print("The upper case version of myBlog is ${nameOne.toUpperCase()} ${nameTwo.toUpperCase()}");
 
}

출력 결과


Strings Exercise

문제를 풀어보자!😁

 

void main() {

  // Given the string below, replace all the
  // "x"s with a blank string
  
  var errorMessage = "Uxh oxh, thexre's a bunxch of txypos";
  
  }

 

더보기

 

void main() {

  // Given the string below, replace all the
  // "x"s with a blank string
  
  var errorMessage = "Uxh oxh, thexre's a bunxch of txypos";
  
  var modifiedMessage = errorMessage.replaceAll("x","");
  print(modifiedMessage);
}
출력 결과

 

 


 

Booleans

Dart에서 Booleans는 논리값을 나타내는 데이터 타입으로, 참(true) 또는 거짓(false)의 두 가지 값만 가질 수 있어요.

 

    1. 변수 선언

  • bool 키워드를 사용하여 boolean 변수를 선언할 수 있어요.
 
bool isTrue = true;
bool isFalse = false;

 

  

    2. 조건문에서 사용

  • if, else와 같은 조건문에서 boolean 값을 사용하여 논리적 흐름을 제어할 수 있어요 ㅎㅎ
bool isRaining = false; 
if (isRaining) { 
    print('Take an umbrella.');
}
else { 
    print('No need for an umbrella.'); 
}

 

 

    3. 논리 연산자:

  • && (그리고), || (또는), ! (부정) 연산자를 사용하여 boolean 값을 조합하거나 반전시킬 수 있어요.
bool isSunny = true; 
bool isWarm = true; 
bool isGoodWeather = isSunny && isWarm; // true 
bool isBadWeather = !isSunny; // false

 

  

    4. 비교 연산자

  • == (같음), != (같지 않음), >, <, >=, <= 등의 연산자를 사용하여 boolean 값을 생성할 수 있습니다.
int a = 10;
int b = 20;

bool isEqual = (a == b); // false
bool isNotEqual = (a != b); // true
bool isGreaterThan = (a > b); // false
 
   
    5. 삼항 연산자
  • 삼항 연산자 ? :를 사용하여 간단한 조건식을 작성할 수 있습니다.
bool isWeekend = true;
String activity = isWeekend ? 'Relax' : 'Work'; // 'Relax'

void main() {
  
  var theTruth = true;
  var falseHood = false;
  
  print(theTruth);
  print(falseHood.runtimeType);
  
}

출력 결과


※ 사실 당연하기도 하지만 엄청 간단한 문법을 계속해서 하고 있어요. 그래도 형식상 계속 이렇게 포스팅을 하도록 하겠습니다 : )

기본 문법에 대해 넘어가고 싶으시면 바로 뛰어넘으셔도 됩니다!

반응형