learn v0
1.0.0
Ini adalah platform untuk belajar AO, ini terdiri dari serangkaian latihan interaktif untuk membantu Anda belajar AO.
Untuk menambahkan lebih banyak latihan, Anda perlu membuat file baru di src/data dengan nama file <number>.<name>.ts
File TS harus berisi objek ekspor default tipe TExerciseData
dan rute titik akhir harus ditambahkan ke objek di data/index.ts
export interface TExerciseData {
route : string ;
nextRoute : string ;
prevRoute : string ;
title : string ;
content : string ;
defaultCode : string ;
expectedResult : string | TExpectedResult ;
runLua ?: boolean ;
allowNext ?: boolean ;
fromId ?: "SELF" | string ;
validateTimestamp ?: boolean ;
}| Bidang | Keterangan | Jenis | Diperlukan | Nilai contoh |
|---|---|---|---|---|
| prevroute | Titik akhir untuk latihan sebelumnya (nilai harus ada dalam file data/index.ts) | rangkaian | BENAR | "10-Connect-Wallet" |
| rute | Titik akhir untuk latihan saat ini (nilai harus ada di file data/index.ts) | rangkaian | BENAR | "20-create-wallet" |
| nextroute | Titik akhir untuk latihan berikutnya (nilai harus ada dalam file data/index.ts) | rangkaian | BENAR | "30-create-asset" |
| judul | judul latihan | rangkaian | BENAR | "Buat dompet" |
| isi | Deskripsi Markdown Didukung Latihan | rangkaian | BENAR | "# Markdown" |
| kode default | kode boilerplate default untuk latihan | rangkaian | BENAR | "cetak ('halo dunia')" |
| diharapkan result* | Hasil yang diharapkan dari latihan (baik string atau objek) | String atau TexpectedResult | BENAR | "Hello World" atau { run:"print('Hello World')", "Hello World" } atau {run:"Inbox[#Inbox].Data"} |
| runlua | Boolean untuk memutuskan apakah akan memeriksa output dengan menjalankan beberapa kode LUA (harus selalu benar jika diharapkan dari tipe TexpectedResult) | Boolean | PALSU | BENAR |
| allownext | boolean yang memungkinkan pindah ke latihan berikutnya secara default | Boolean | PALSU | BENAR |
| fromid | Jika kami memeriksa jika kami telah menerima pesan kotak masuk dari proses tertentu (diri Anda sendiri jika kami mengirimkannya ke AO.ID) | "Diri" atau string | PALSU | "" atau "diri" |
| ValidateTimestamp | Untuk memeriksa apakah pesan kotak masuk diterima setelah menjalankan kode latihan (membandingkan cap waktu) | Boolean | PALSU | BENAR |
*diharapkan yang diharapkan dapat berupa string atau objek
type TExpectedResult =
| string
| {
run : string ;
out ?: string ;
} ;| Bidang | Keterangan | Jenis | Diperlukan | Nilai contoh |
|---|---|---|---|---|
| berlari | kode LUA untuk berjalan untuk mendapatkan hasil yang diharapkan | rangkaian | BENAR | "Cetak ('Halo Dunia!')" |
| keluar | Jika dinyatakan, akan memeriksa apakah output dari bidang RUN sama dengan nilai ini, Lainnya akan membandingkan output LUA dengan output kode yang ditulis pengguna dalam latihan tersebut | rangkaian | opsional | "Halo Dunia!" |
Setelah membuat objek, Anda perlu menambahkannya ke file data/index.ts
import { TExerciseData } from "@/types" ;
export default {
prevRoute :... ,
route :... ,
nextRoute :... ,
.
.
.
} as TExerciseData ; import { TExerciseData } from "@/types" ;
export default {
"10-connect-wallet" : require ( "@/data/10.connect-wallet" ) . default ,
"20-spawn-process" : require ( "@/data/20.spawn-process" ) . default ,
"30-hello-ao" : require ( "@/data/30.hello-ao" ) . default ,
.
.
.
"<your-route>" : require ( "@/data/<your-exercise-file" ) . default ,
} as { [ foo : string ] : TExerciseData } ;Catatan Penting: