Created at : 2025-01-09 20:04
Auther: Soo.Y
πλ©λͺ¨
1. ν¨μ μ μ
Dartμμ ν¨μλ₯Ό μ μνλ €λ©΄ returnType functionName(parameters)
νμμ μ¬μ©
- κΈ°λ³Έ νμ: λ°ν κ°μ΄ μλ ν¨μ
- λ°ν κ°μ΄ μλ ν¨μ: λ°ν νμ
μ
void
λ‘ λͺ μ - ν¨μ λ³Έλ¬Έμ μ€κ΄νΈ
{}
λ‘ κ°μ
μμ)
int add(int a, int b) {
return a + b;
}
void printMessage(String message) {
print(message);
}
μ€μ΅λ¬Έμ 1 λ μ«μμ μ°¨λ₯Ό κ³μ°νλ ν¨μλ₯Ό μμ±νμΈμ.
int subtract(int a, int b) {
return a - b;
}
μ€μ΅λ¬Έμ 2 μ λ ₯ λ¬Έμμ΄μ λ°μ κ·Έ κΈΈμ΄λ₯Ό μΆλ ₯νλ ν¨μλ₯Ό μμ±νμΈμ.
int cal_length(String text) {
print('Length: ${text.length}');
}
1.1 ν¨μ μ΄λ¦ κ·μΉ
- μλ¬Έμλ‘ μμ
- ν¨μ μ΄λ¦μ νμ μλ¬Έμλ‘ μμν΄μΌ ν¨
- μ:
getName()
,calculateSum()
.
- λ¨μ΄ κ° μ°κ²°μ
camelCase
μ¬μ©- ν¨μ μ΄λ¦μ΄ μ¬λ¬ λ¨μ΄λ‘ μ΄λ£¨μ΄μ§ κ²½μ°, 첫 λ¨μ΄λ μλ¬Έμλ‘ μμνκ³ μ΄ν λ¨μ΄μ 첫 κΈμλ λλ¬Έμλ‘ μμ±.
- μ:
getUserInfo()
,calculateTotalPrice()
.
- νΉμ λ¬Έμ μ¬μ© κΈμ§
- ν¨μ μ΄λ¦μ 곡백, νμ΄ν(
-
), λλ κΈ°ν νΉμ λ¬Έμλ₯Ό μ¬μ©ν μ μμ. - λμ λ°μ€(
_
)μ μ¬μ© κ°λ₯νμ§λ§ Dartμμλ μΌλ°μ μΌλ‘camelCase
λ₯Ό κΆμ₯ν¨.
- ν¨μ μ΄λ¦μ 곡백, νμ΄ν(
- μ«μλ‘ μμ κΈμ§
- ν¨μ μ΄λ¦μ μ«μλ‘ μμν μ μμ.
- μ:
1calculateSum()
(μλͺ»λ μ).
- ν€μλ μ¬μ© κΈμ§
class
,void
,if
λ± Dartμ μμ½μ΄(ν€μλ)λ ν¨μ μ΄λ¦μΌλ‘ μ¬μ©ν μ μμ.
2. Named parameters
Dartμμλ ν¨μ νΈμΆ μ λ§€κ°λ³μλ₯Ό μ΄λ¦μΌλ‘ μ λ¬ν μ μμ΅λλ€. μ΄λ λ§€κ°λ³μμ μμμ ꡬμ λ°μ§ μλλ‘ ν©λλ€.
- Named Parameterλ μ€κ΄νΈ
{}
λ‘ λ¬Άμ΅λλ€. - κΈ°λ³Έκ°μ μ€μ νκ±°λ
required
ν€μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
μμ)
void greet({required String name}) {
print('Hello, $name.');
}
μ€μ΅ λ¬Έμ 1 μ΄λ¦κ³Ό λμ΄λ₯Ό μ λ ₯λ°μ λ©μμ§λ₯Ό μΆλ ₯νλ ν¨μλ₯Ό μμ±νμΈμ. λμ΄κ° μ λ ₯λμ§ μμΌλ©΄ βμ μ μμβμΌλ‘ μΆλ ₯νμΈμ.
void printNameAge({required String name, String age = "unknown"}) {
print("Hello, my name is $name, I am $age");
}
void main() {
printNameAge(name: "Soyoung");
}
μ€μ΅ λ¬Έμ 2 μ΄λ¦κ³Ό μ μλ₯Ό μ λ ₯ λ°μ νμμ μ±μ μ μΆλ ₯νλ ν¨μλ₯Ό μμ±νμΈμ. μ μλ κΈ°λ³Έ κ°μΌλ‘ 50μ μ¬μ©νμΈμ.
void printNameScore({required Sting name, double score = 50}){
print("Name : $name, score : $score");
}
3. Positional parameters
Dartμμλ μ νμ μΈ μμΉ λ§€κ°λ³μλ μ§μν©λλ€. []
μμ λ§€κ°λ³μλ₯Ό μ μνλ©΄ μ ν μ¬νμ΄ λ©λλ€.
μμ)
void describe(String name, [int? age, String? city]) {
print('Name: $name');
if (age != null) print('Age: $age');
if (city != null) print('City: $city');
}
// or
void describe(String name, [int? age = null, String? city = null]) {
print('Name: $name');
print('Age: $age');
print('City: $city');
}
μ€μ΅λ¬Έμ 1 μΌκ°νμ λ°λ³κ³Ό λμ΄λ₯Ό λ°μ λ©΄μ μ κ³μ°νλ ν¨μλ₯Ό μμ±νμΈμ. λ°λ³κ³Ό λμ΄κ° μ 곡λμ§ μμΌλ©΄ κΈ°λ³Έκ° 1μ μ¬μ©νμΈμ.
void calTriangleArea([double base = 1, double height = 1]) {
print("Area : ${0.5 * base * height}");
}
void main() {
calTriangleArea(2, 2);
}
4. QQ Operator
QQ μ°μ°μ ??
λ null κ°μ μ²λ¦¬νκΈ° μν΄ μ¬μ©λλ€. ??
λ₯Ό ν΅ν΄ null λμ κΈ°λ³Έκ°μ μ 곡ν μ μλ€.
- λ¬Όμν(
?
) : λ³μλ νμ λ€μ λ¬Όμνλ₯Ό λΆμ΄λ©΄ κ·Έ λ³μλ null κ°μ κ°μ§ μ μλ€λ μλ―Έμ΄λ€.
String? name; // name λ³μλ nullμΌ μ μμ΅λλ€.
- λ¬Όμν 2κ°(
??
) : λ¬Όμν 2κ°λ₯Ό μ¬μ©νλ©΄ λ λ³ν© μ°μ°μλ‘ μΌμͺ½ μ°μ°μκ° λμ΄λ©΄ μ€λ₯Έμͺ½ νΌμ°μ°μλ₯Ό λ°ννλ€.
String? name;
print(name ?? 'Unknown'); // nameμ΄ nullμ΄λ©΄ 'Unknown'μ μΆλ ₯ν©λλ€.
String capitalizeName(String? name) {
if ( name != null) {
return name.toUpperCase();
}
return 'ANON';
}
// or
String capitalizeName(String? name) +> name != null ? name.toUpperCase() : "ANON";
// or
String capitalizeName(String? name) +> name?.toUpperCase() ?? "ANON";
- ??= λ μ’λ³μ μλ νΌμ°μ°μκ° λμ΄λ©΄ μ°λ³μ μλ νΌμ°μ°μλ‘ ν λΉνλΌλ μ°μ°μμ΄μ΄λ€.
void main() {
String? name;
name ??= "Sooyoung";
print(name); // Sooyoung
}
μ€μ΅ λ¬Έμ 1 : μ¬μ©μμ μ΄λ©μΌμ λ°μ nullμΌ κ²½μ° βμ΄λ©μΌ μμβμ μΆλ ₯νμΈμ.
print(${email} ?? "μ΄λ©μΌ μμ");
μλκ³ print(email ?? "μ΄λ©μΌ μμ");
λΌκ³ μμ±νλ μ΄μ λ λ¨Όμ email
λ³μκ° λμΈμ§ μλμ§ νλ¨ν λ€μμ print
λ¬Έμ΄ μ€νλκΈ° λλ¬Έμ΄λ€.
void emailAddress([String email]) {
print(email ?? "μ΄λ©μΌ μμ");
}
void main() {
emailAddress();
}
λ¬Έμμ΄λ‘ ꡬμ±νκ³ μΆμΌλ©΄ μλμ κ°μ΄ μμ±νλ€.
void emailAddress([String? email]) {
print("λΉμ μ μ΄λ©μΌμ ${email ?? 'μ΄λ©μΌ μμ'}μ
λλ€.");
}
void main() {
emailAddress();
}
5. Typedef
Typedef
λ 볡μ‘ν ν¨μ νμ
μ λ³μΉμ μ 곡νλλ° μ¬μ©ν©λλ€.
List<int> reverseListOfNumbers(List<int> list) {
var reversed = list.reversed;
return reversed.toList();
}
// apply Typedef below
typedef ListOfInts = List<init>;
ListOfInts reverseListOfNumbers(ListOfInts list) {
var reversed = list.reversed;
return reversed.toList();
}