diff options
Diffstat (limited to 'doc/docs/id-id')
| -rw-r--r-- | doc/docs/id-id/doc/advanced/do.md | 22 | ||||
| -rw-r--r-- | doc/docs/id-id/doc/control-flow/for-loop.md | 16 | ||||
| -rw-r--r-- | doc/docs/id-id/doc/control-flow/while-loop.md | 42 | ||||
| -rw-r--r-- | doc/docs/id-id/doc/language-basics/module.md (renamed from doc/docs/id-id/doc/advanced/module.md) | 0 | ||||
| -rw-r--r-- | doc/docs/id-id/doc/objects/with-statement.md | 44 |
5 files changed, 121 insertions, 3 deletions
diff --git a/doc/docs/id-id/doc/advanced/do.md b/doc/docs/id-id/doc/advanced/do.md index ac75531..52ef5dc 100644 --- a/doc/docs/id-id/doc/advanced/do.md +++ b/doc/docs/id-id/doc/advanced/do.md | |||
| @@ -20,7 +20,27 @@ print var -- nil di sini | |||
| 20 | 20 | ||
| 21 | </YueDisplay> | 21 | </YueDisplay> |
| 22 | 22 | ||
| 23 | `do` di YueScript juga bisa digunakan sebagai ekspresi, memungkinkan Anda menggabungkan beberapa baris menjadi satu. Hasil ekspresi `do` adalah pernyataan terakhir di badannya. | 23 | `do` di YueScript juga bisa digunakan sebagai ekspresi, memungkinkan Anda menggabungkan beberapa baris menjadi satu. Hasil ekspresi `do` adalah pernyataan terakhir di badannya. Ekspresi `do` mendukung penggunaan `break` untuk memutus alur eksekusi dan mengembalikan banyak nilai lebih awal. |
| 24 | |||
| 25 | ```yuescript | ||
| 26 | status, value = do | ||
| 27 | n = 12 | ||
| 28 | if n > 10 | ||
| 29 | break "large", n | ||
| 30 | break "small", n | ||
| 31 | ``` | ||
| 32 | |||
| 33 | <YueDisplay> | ||
| 34 | |||
| 35 | ```yue | ||
| 36 | status, value = do | ||
| 37 | n = 12 | ||
| 38 | if n > 10 | ||
| 39 | break "large", n | ||
| 40 | break "small", n | ||
| 41 | ``` | ||
| 42 | |||
| 43 | </YueDisplay> | ||
| 24 | 44 | ||
| 25 | ```yuescript | 45 | ```yuescript |
| 26 | counter = do | 46 | counter = do |
diff --git a/doc/docs/id-id/doc/control-flow/for-loop.md b/doc/docs/id-id/doc/control-flow/for-loop.md index 65386f7..3835cce 100644 --- a/doc/docs/id-id/doc/control-flow/for-loop.md +++ b/doc/docs/id-id/doc/control-flow/for-loop.md | |||
| @@ -86,7 +86,7 @@ doubled_evens = for i = 1, 20 | |||
| 86 | 86 | ||
| 87 | </YueDisplay> | 87 | </YueDisplay> |
| 88 | 88 | ||
| 89 | Selain itu, loop for mendukung break dengan nilai kembalian, sehingga loop itu sendiri bisa dipakai sebagai ekspresi yang keluar lebih awal dengan hasil bermakna. | 89 | Selain itu, loop for mendukung break dengan nilai kembalian, sehingga loop itu sendiri bisa dipakai sebagai ekspresi yang keluar lebih awal dengan hasil bermakna. Ekspresi `for` mendukung `break` dengan banyak nilai. |
| 90 | 90 | ||
| 91 | Contohnya, untuk menemukan angka pertama yang lebih besar dari 10: | 91 | Contohnya, untuk menemukan angka pertama yang lebih besar dari 10: |
| 92 | 92 | ||
| @@ -106,6 +106,20 @@ first_large = for n in *numbers | |||
| 106 | 106 | ||
| 107 | Sintaks break-dengan-nilai ini memungkinkan pola pencarian atau keluar-lebih-awal yang ringkas langsung di dalam ekspresi loop. | 107 | Sintaks break-dengan-nilai ini memungkinkan pola pencarian atau keluar-lebih-awal yang ringkas langsung di dalam ekspresi loop. |
| 108 | 108 | ||
| 109 | ```yuescript | ||
| 110 | key, score = for k, v in pairs data | ||
| 111 | break k, v * 10 if k == "target" | ||
| 112 | ``` | ||
| 113 | |||
| 114 | <YueDisplay> | ||
| 115 | |||
| 116 | ```yue | ||
| 117 | key, score = for k, v in pairs data | ||
| 118 | break k, v * 10 if k == "target" | ||
| 119 | ``` | ||
| 120 | |||
| 121 | </YueDisplay> | ||
| 122 | |||
| 109 | Anda juga bisa memfilter nilai dengan menggabungkan ekspresi for dengan pernyataan continue. | 123 | Anda juga bisa memfilter nilai dengan menggabungkan ekspresi for dengan pernyataan continue. |
| 110 | 124 | ||
| 111 | Loop for di akhir badan fungsi tidak diakumulasikan menjadi tabel untuk nilai kembalian (sebaliknya fungsi akan mengembalikan nil). Gunakan pernyataan return eksplisit, atau ubah loop menjadi list comprehension. | 125 | Loop for di akhir badan fungsi tidak diakumulasikan menjadi tabel untuk nilai kembalian (sebaliknya fungsi akan mengembalikan nil). Gunakan pernyataan return eksplisit, atau ubah loop menjadi list comprehension. |
diff --git a/doc/docs/id-id/doc/control-flow/while-loop.md b/doc/docs/id-id/doc/control-flow/while-loop.md index 3e302cc..0c3a28d 100644 --- a/doc/docs/id-id/doc/control-flow/while-loop.md +++ b/doc/docs/id-id/doc/control-flow/while-loop.md | |||
| @@ -45,7 +45,25 @@ until running == false do my_function! | |||
| 45 | 45 | ||
| 46 | </YueDisplay> | 46 | </YueDisplay> |
| 47 | 47 | ||
| 48 | Seperti loop for, loop while juga bisa digunakan sebagai ekspresi. Selain itu, agar sebuah fungsi mengembalikan nilai akumulasi dari loop while, pernyataannya harus di-return secara eksplisit. | 48 | Seperti loop for, loop while juga bisa digunakan sebagai ekspresi. Ekspresi `while` dan `until` mendukung `break` dengan banyak nilai. |
| 49 | |||
| 50 | ```yuescript | ||
| 51 | value, doubled = while true | ||
| 52 | n = get_next! | ||
| 53 | break n, n * 2 if n > 10 | ||
| 54 | ``` | ||
| 55 | |||
| 56 | <YueDisplay> | ||
| 57 | |||
| 58 | ```yue | ||
| 59 | value, doubled = while true | ||
| 60 | n = get_next! | ||
| 61 | break n, n * 2 if n > 10 | ||
| 62 | ``` | ||
| 63 | |||
| 64 | </YueDisplay> | ||
| 65 | |||
| 66 | Selain itu, agar sebuah fungsi mengembalikan nilai akumulasi dari loop while, pernyataannya harus di-return secara eksplisit. | ||
| 49 | 67 | ||
| 50 | ## Repeat Loop | 68 | ## Repeat Loop |
| 51 | 69 | ||
| @@ -70,3 +88,25 @@ until i == 0 | |||
| 70 | ``` | 88 | ``` |
| 71 | 89 | ||
| 72 | </YueDisplay> | 90 | </YueDisplay> |
| 91 | |||
| 92 | Ekspresi `repeat` juga mendukung `break` dengan banyak nilai: | ||
| 93 | |||
| 94 | ```yuescript | ||
| 95 | i = 1 | ||
| 96 | value, scaled = repeat | ||
| 97 | break i, i * 100 if i > 3 | ||
| 98 | i += 1 | ||
| 99 | until false | ||
| 100 | ``` | ||
| 101 | |||
| 102 | <YueDisplay> | ||
| 103 | |||
| 104 | ```yue | ||
| 105 | i = 1 | ||
| 106 | value, scaled = repeat | ||
| 107 | break i, i * 100 if i > 3 | ||
| 108 | i += 1 | ||
| 109 | until false | ||
| 110 | ``` | ||
| 111 | |||
| 112 | </YueDisplay> | ||
diff --git a/doc/docs/id-id/doc/advanced/module.md b/doc/docs/id-id/doc/language-basics/module.md index 103e3f6..103e3f6 100644 --- a/doc/docs/id-id/doc/advanced/module.md +++ b/doc/docs/id-id/doc/language-basics/module.md | |||
diff --git a/doc/docs/id-id/doc/objects/with-statement.md b/doc/docs/id-id/doc/objects/with-statement.md index 96a3efd..b3dd520 100644 --- a/doc/docs/id-id/doc/objects/with-statement.md +++ b/doc/docs/id-id/doc/objects/with-statement.md | |||
| @@ -44,6 +44,50 @@ file = with File "favorite_foods.txt" | |||
| 44 | 44 | ||
| 45 | </YueDisplay> | 45 | </YueDisplay> |
| 46 | 46 | ||
| 47 | Ekspresi `with` mendukung `break` dengan satu nilai: | ||
| 48 | |||
| 49 | ```yuescript | ||
| 50 | result = with obj | ||
| 51 | break .value | ||
| 52 | ``` | ||
| 53 | |||
| 54 | <YueDisplay> | ||
| 55 | |||
| 56 | ```yue | ||
| 57 | result = with obj | ||
| 58 | break .value | ||
| 59 | ``` | ||
| 60 | |||
| 61 | </YueDisplay> | ||
| 62 | |||
| 63 | Setelah `break value` digunakan di dalam `with`, ekspresi `with` tidak lagi mengembalikan objek targetnya, melainkan mengembalikan nilai dari `break`. | ||
| 64 | |||
| 65 | ```yuescript | ||
| 66 | a = with obj | ||
| 67 | .x = 1 | ||
| 68 | -- a adalah obj | ||
| 69 | |||
| 70 | b = with obj | ||
| 71 | break .x | ||
| 72 | -- b adalah .x, bukan obj | ||
| 73 | ``` | ||
| 74 | |||
| 75 | <YueDisplay> | ||
| 76 | |||
| 77 | ```yue | ||
| 78 | a = with obj | ||
| 79 | .x = 1 | ||
| 80 | -- a adalah obj | ||
| 81 | |||
| 82 | b = with obj | ||
| 83 | break .x | ||
| 84 | -- b adalah .x, bukan obj | ||
| 85 | ``` | ||
| 86 | |||
| 87 | </YueDisplay> | ||
| 88 | |||
| 89 | Berbeda dari `for` / `while` / `repeat` / `do`, `with` hanya mendukung satu nilai `break`. | ||
| 90 | |||
| 47 | Atau… | 91 | Atau… |
| 48 | 92 | ||
| 49 | ```yuescript | 93 | ```yuescript |
