μ°Έκ³ μ¬μ΄νΈ
• Dart 곡μ λ¬Έμ - λ΄μ₯ νμ
π¦ λ΄μ₯ νμ
Dart μΈμ΄λ λ€μκ³Ό κ°μ νΉμν λ΄μ₯ νμ μ μ§μνλ€.
- Numbers (int, double)
- String (String)
- Booleans (bool)
- Records ((value1, value2))
- Lists(List, arraysλ‘λ λΆλ₯Έλ€.)
- Sets (Set)
- Maps (Map)
- Runes (Runes; λλλ‘ characters APIλ‘ λ체λλ€.)
- Symbols (Symbol)
- null κ° (Null)
μ΄λ° νμ λ€μ 리ν°λ΄μ μ¬μ©νμ¬ κ°μ²΄λ₯Ό μμ±ν μ μλ€.
μλ₯Ό λ€μ΄,
'this is a string'μ λ¬Έμμ΄(String) 리ν°λ΄,
trueλ boolean 리ν°λ΄μ΄λ€.
Dartμ λͺ¨λ λ³μλ κ°μ²΄ (ν΄λμ€μ μΈμ€ν΄μ€)μ΄κΈ° λλ¬Έμ, λ³μλ₯Ό μ΄κΈ°ν ν λ μμ±μλ₯Ό μ¬μ©ν μ μλ€.
λͺλͺ λ΄μ₯ νμ μ μμ λ§μ μμ±μλ₯Ό κ°μ§κ³ μλ€.
μλ₯Ό λ€μ΄,
Map() μμ±μλ₯Ό μ¬μ©νμ¬ mapμ μμ±ν μ μλ€.
Dart μΈμ΄μ μΌλΆ νμ λ€μ νΉμν μν μ μννλ€.
- Object: Nullμ μ μΈν λͺ¨λ Dart ν΄λμ€μ λΆλͺ¨ ν΄λμ€.
- Enum: λͺ¨λ enumμ λΆλͺ¨ ν΄λμ€
- Futrue, Stream: λΉλκΈ° μ§μμμ μ¬μ©
- Iterable: for-in 루ν κ·Έλ¦¬κ³ λκΈ°μ μ λλ μ΄ν° ν¨μμμ μ¬μ©
- Never: μ(expression)μ νκ°λ₯Ό μλ£ν μ μμμ λνλΈλ€. νμ μμΈλ₯Ό λ°μμν€λ ν¨μμμ μ¬μ©
- dynamic: μ μ νμ 체νΉμ λΉνμ±νλ₯Ό μλ―Ένλ€. λκ° Object λλ Object?λ₯Ό λμ μ¬μ©
- void: κ°μ΄ μ¬μ©λμ§ μμλ€λ κ²μ μλ―Ένλ€. λ³΄ν΅ λ°ν νμ μΌλ‘ μ¬μ©
Object, Object?, Null, κ·Έλ¦¬κ³ Never ν΄λμ€λ Understanding null safetyμ [top-and-bottom][] μΉμ μ λ¬μ¬λμ΄ μλ κ²μ²λΌ, ν΄λμ€ κ³μΈ΅μμ νΉλ³ν μν μ μννλ€.
(ν°μΌμ΄λ€... μμ±μλ λͺ°λΌμ μ°μ λ°λΌ μ κ³ μλλ°,,, ν₯ν μ΄ν΄λλ©΄ λ°κΎΈκ² λ€.)
π’ Numbers
Dartμ μ«μλ λ κ°μ§ μ νμ΄ μλ€.
π’ int
μ¬μ©νλ νλ«νΌμ λ°λΌμ μ μ κ°μ 64λΉνΈ μ΄νλ‘ ννλλ€.
λ€μ΄ν°λΈ νλ«νΌμμλ -2^63 to 2^63 - 1 κΉμ§ ννλλ€.
μΉμμλ Javascript numbers(κ°μλΆκ° μλ 64-bits λΆλμμμ νν) -2^53 to 2^53 - 1 μ¬μ΄μ μλ‘ ννλλ€.
π’ double
IEEE 754 standardλ₯Ό λ°λΌ 64-bit (λ°°μ λ) λΆλ μμμ ννμ μ¬μ©νλ€.
intμ doubleμ λͺ¨λ numμ μλΈνμ μ΄λ€. num νμ μ +, -, /, *μ κ°μ μ°μ°μ μ¬μ©μ΄ κ°λ₯νκ³ abs(), ceil(), κ·Έλ¦¬κ³ floor() κ°μ ν¨μμ μ¬μ©λ κ°λ₯ν©λλ€.
(>> κ°μ λΉνΈμμ΄μ¦ μ°μ°μλ int ν΄λμ€μ μ μλμ΄ μλ€.)
var int_number = 1;
var hex = 0xDEADBEEF;
num x = 1;
var double_number = 1.1;
var exponents = 1.42e5;
double y = 1; // double y = 1.0κ³Ό λμΌ
λ³μλ₯Ό numμΌλ‘ μ μΈν μλ μλ€. μ΄λλ νμ μΆλ‘ μΌλ‘ ν΄λΉ κ°μ΄ int, doubleκ°μ λͺ¨λ κ°μ§ μ μλ€.
int νμ μ λΉνΈ νλμμ νλκ·Έλ₯Ό μ‘°μνκ³ λ§μ€νΉνλλ° μ μ©ν λΉνΈ λ¨μ μ¬ννΈ(<<, >>, >>>), 보μ(~), AND(&), OR(|), κ·Έλ¦¬κ³ XOR(^) μ°μ°μλ₯Ό μ§μνλ€.
assert((3 << 1) == 6); // 0011 << 1 == 0110
assert((3 | 4) == 7); // 0011 | 0100 = 0111
assert((3 & 4) == 0); // 0011 & 0100 == 0000
π€ String
Dartμ λ¬Έμμ΄(String κ°μ²΄)μ UTRF-16 μ½λ μ λμ μνμ€λ₯Ό νλνλ€.
λ¬Έμμ΄μ λ§λ€ λ μμ λ°μ΄ν, ν° λ°μ΄ν λͺ¨λ μ¬μ©μ΄ κ°λ₯νλ€.
${ννμ}μ μ¬μ©νμ¬ ννμ μμ λ³μκ°μ λ£μ μ μλ€.
ννμμ΄ μλ³μλΌλ©΄ {}λ₯Ό μλ΅ν μ μλ€.
β οΈ == μ°μ°μλ λ κ°μ²΄κ° λμΌνμ§ ν μ€νΈνλ€. λ λ¬Έμμ΄μ΄ λμΌν μ½λ μ λμ μνμ€λ₯Ό ν¬ν¨νλ€λ©΄, κ°μ λ¬Έμμ΄λ‘ νλ¨νλ€.
μμ λ°μ΄ν λλ ν° λ°μ΄νλ₯Ό triple quoteλ₯Ό νμ±ν΄ λ©ν° λΌμΈ λ¬Έμμ΄μ μμ±ν μ μλ€.
var s1 = '''
μ΄λ κ²
μ€λ°κΎΈλ©΄μ
λ©ν° λΌμΈ λ¬Έμμ΄ μ μΈ κ°λ₯
''';
var s2 = """
μλ
λ§μ°¬κ°μ§
""";
var s = r'content content';
rμ μ¬μ©νμ¬ "λ‘μ°(raw)" λ¬Έμμ΄μ μμ±ν μ μλ€.
μΈμ λ¬Έμμ΄ λ¦¬ν°λ΄ λλ + μ°μ°μλ₯Ό μ¬μ©ν΄μ λ¬Έμμ΄μ ν©μΉ μ μλ€.
var s1 = 'μμͺ½λΆν° ';
var s2 = 'λ€μͺ½κΉμ§';
var result = s1 + s2 // 'μμͺ½λΆν° λ€μͺ½κΉμ§'
βοΈ Booleans
Dartλ booleanν νμ μ boolλ‘ λͺ λͺ νκ³ μλ€.
μ»΄νμΌ νμ μμμΈ Boolean 리ν°λ΄: trueμ falseκ° μ μΌν bool νμ κ°μ²΄μ΄λ€.
Runesμ graphme cluster
μ λμ½λμ ν¬μΈνΈλ₯Ό λνλ΄λ νμ μ΄λ€.
μ λμ½λλ μΈμμ λͺ¨λ λ¬Έμ, μ«μ, κΈ°νΈ μμ€ν μ λν κ³ μ ν μ«μ κ°μ μ μνλ€.
μ λμ½λλ \uXXXX ννλ‘ λνλλλ°, ννΈ λ¬Έμ(♥)λ \u2665λ‘ XXXXλ 16μ§μ-4digit κ°μ΄λ€.
4κ°λ³΄λ€ λ§μ΄ μ¬μ©νκ³ μΆλ€λ©΄ {}λ₯Ό μ¬μ©νλ©΄ λλ€.
μλ₯Ό λ€λ©΄ μλ μ΄λͺ¨μ§(π)λ \u{1f606}μΌλ‘ λνλΈλ€.
μ½λ©μ νλ€κ° μ λμ½λ λ³μλ₯Ό μλͺ» μλΌλ²λ¦¬λ©΄ μ΄μν κ°μ΄ μΆλ ₯λλ€. (μΌλ° λ¬Έμμ΄μ μλ €μ λμ΄)
import 'package:characters/characters.dart';
void main() {
var hi = 'Hi π';
print(hi);
// μ λμ½λ νμ
μ μλΌλ²λ¦¬λ κ²½μ°
print('The end of the string: ${hi.substring(hi.length - 1)}');
// κ°μ λ§μ§λ§ μ λμ½λλ§ κ°λ§ μΆλ ₯
print('The last character: ${hi.characters.last}');
}
Hi π
The end of the string: ???
The last character: π
λ€μκ³Ό κ°μ΄ μ¬μ©λλ€.
π Symbols
Symbol κ°μ²΄λ Dart νλ‘κ·Έλ¨μμ μ μΈλ μ°μ°μλ μλ³μλ₯Ό λνλΈλ€. Symbolμ κ±°μ νμνμ§ μμ§λ§,
μ½λ μμΆ(minification) ν μλ³μμ μ΄λ¦μ΄ λ³κ²½λλλΌλ symbolμ λ³κ²½λμ§ μκΈ° λλ¬Έμ μλ³μλ₯Ό ν΅ν API μ°Έμ‘°μ μ μ©νλ€.
μλ³μμ λν symbolμ κ°μ Έμ€λ €λ©΄ symbol 리ν°λ΄(#)μ μλ³μ μμ μ¬μ©νλ©΄ λλ€.
#radix
#bar
Symbol 리ν°λ΄μ μ»΄νμΌ νμ μμμ΄λ€.
'Language > Dart' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ Dart ] ν¨μμ λν΄ μμ보μ. (0) | 2024.04.11 |
---|---|
[ Dart ] λ³μμ λν΄ μμ보μ. (feat. Null safety) (0) | 2024.04.10 |