Konversikan Crystal ke 4D menggunakan AI

Terjemahan kode sumber-ke-sumber dari Crystal menggunakan AI melibatkan penggunaan teknik pemrosesan bahasa alami (NLP) dan algoritme pembelajaran mesin untuk menganalisis dan memahami kode sumber

Fitur

Hotkeys Konverter Potongan Kode

Kombinasi Aksi
Ctrl+c Menyalin konten editor kode sumber ke clipboard
Ctrl+v Menyisipkan kode sumber ke editor dari clipboard dengan menimpa konten yang ada
Ctrl+ Shift+c Menyalin output AI ke clipboard
Ctrl+r atau Ctrl+enter Menjalankan konversi kode sumber
Ctrl+Shift+1 Mengalihkan visibilitas editor instruksi AI

Tantangan Terjemahan

Masalah Terjemahan Contoh Sintaks Crystal Contoh Sintaks 4D Poin Skor
Inferensi Tipe def add(a, b) : Int Deklarasi tipe C_LONGINT 7
Makro dan Metaprogramming `` If (condition) 6
Konkruensi dan Thread spawn { ... } CREATE PROCESS 8
Mixin dan Pewarisan include ModuleName Pewarisan C_OBJECT 5
Blok dan Lambda ->(x) { x * 2 } ARRAY TO SET dengan LAMBDA 6
Penanganan Eksepsi begin ... rescue ... end CATCH dan END CATCH 7
Overloading Metode def foo(x : Int); def foo(x : String) Definisi metode C_LONGINT dan C_TEXT 6
Definisi Enum dan Struct enum Color { red, green, blue } C_LONGINT untuk enum, C_OBJECT untuk struct 5
Tipe Bawaan dan Koleksi Array(Int32) ARRAY dan C_LONGINT 7
Overloading Operator def +(other : MyClass) C_OBJECT dengan metode kustom 6

Inferensi Tipe

Dalam Crystal, inferensi tipe memungkinkan definisi metode yang ringkas tanpa deklarasi tipe eksplisit. Contohnya:

def add(a, b)
  a + b
end

Dalam 4D, Anda harus mendeklarasikan tipe secara eksplisit:

C_LONGINT(a)
C_LONGINT(b)

Referensi: Inferensi Tipe Crystal


Makro dan Metaprogramming

Crystal mendukung makro untuk metaprogramming, memungkinkan generasi kode pada waktu kompilasi. Contohnya:


  # kode

Dalam 4D, Anda akan menggunakan pernyataan kondisional:

If (condition)
  // kode
End If

Referensi: Makro Crystal


Konkruensi dan Thread

Model konkruensi Crystal menggunakan thread ringan. Contohnya:

spawn do
  # kode
end

Dalam 4D, Anda membuat proses baru:

CREATE PROCESS
  // kode
END PROCESS

Referensi: Konkruensi Crystal


Mixin dan Pewarisan

Crystal memungkinkan mixin untuk penggunaan kembali kode. Contohnya:

include ModuleName

Dalam 4D, Anda akan menggunakan pewarisan objek:

C_OBJECT(myObject)

Referensi: Mixin Crystal


Blok dan Lambda

Crystal mendukung blok dan lambda untuk pemrograman fungsional. Contohnya:

->(x) { x * 2 }

Dalam 4D, Anda dapat menggunakan LAMBDA:

ARRAY TO SET(LAMBDA(x; x * 2))

Referensi: Blok Crystal


Penanganan Eksepsi

Crystal menggunakan begin ... rescue ... end untuk penanganan eksepsi. Contohnya:

begin
  # kode
rescue
  # tangani kesalahan
end

Dalam 4D, Anda akan menggunakan:

CATCH
  // tangani kesalahan
END CATCH

Referensi: Penanganan Eksepsi Crystal


Overloading Metode

Crystal memungkinkan overloading metode berdasarkan tipe parameter. Contohnya:

def foo(x : Int)
end

def foo(x : String)
end

Dalam 4D, Anda harus mendefinisikan metode terpisah untuk tipe yang berbeda:

C_LONGINT(foo)
C_TEXT(foo)

Referensi: Overloading Metode Crystal


Definisi Enum dan Struct

Crystal mendefinisikan enum dan struct dengan ringkas. Contohnya:

enum Color { red, green, blue }

Dalam 4D, Anda akan menggunakan:

C_LONGINT(Color)

Referensi: Enum Crystal


Tipe Bawaan dan Koleksi

Crystal memiliki tipe bawaan dan koleksi. Contohnya:

Array(Int32)

Dalam 4D, Anda akan menggunakan:

ARRAY(C_LONGINT)

Referensi: Koleksi Crystal


Overloading Operator

Crystal memungkinkan overloading operator untuk kelas kustom. Contohnya:

def +(other : MyClass)
  # implementasi
end

Dalam 4D, Anda akan mendefinisikan metode kustom:

C_OBJECT(myObject)

Referensi: Overloading Operator Crystal

FAQ