با استفاده از هوش مصنوعی، CoffeeScript را به Swift تبدیل کنید

ترجمه کد منبع به منبع از CoffeeScript با استفاده از هوش مصنوعی شامل استفاده از تکنیک‌های پردازش زبان طبیعی (NLP) و الگوریتم‌های یادگیری ماشین برای تجزیه و تحلیل و درک کد منبع است.

اکشن‌اسکریپت

FAQ

چالش‌های ترجمه

توضیحات مشکل مثال نحوی CoffeeScript مثال نحوی Swift امتیاز (1-10)
اعلام تابع square = (x) -> x * x func square(x: Int) -> Int { return x * x } 6
درک لیست [x * x for x in [1..5]] let squares = (1...5).map { $0 * $0 } 7
بازگشت ضمنی double = (x) -> x * 2 func double(x: Int) -> Int { return x * 2 } 5
وراثت کلاس class Animal
speak: -> 'Roar'
class Animal { func speak() -> String { return "Roar" } } 4
عملگر اسپلت sum = (args...) -> args.reduce(0, (a, b) -> a + b) func sum(_ args: Int...) -> Int { return args.reduce(0, +) } 6
درج در رشته "Hello, #{name}" "Hello, \(name)" 2
پارامترهای پیش‌فرض greet = (name = 'World') -> "Hello, #{name}" func greet(name: String = "World") -> String { return "Hello, \(name)" } 3
انتساب تخریب‌گر a, b = [1, 2] let (a, b) = (1, 2) 8
توابع پیکانی add = (a, b) -> a + b let add = { (a: Int, b: Int) -> Int in return a + b } 7
فراخوانی‌های زنجیره‌ای array.map (x) -> x * 2 .filter (x) -> x > 5 array.map { $0 * 2 }.filter { $0 > 5 } 3

اعلام تابع

در CoffeeScript، توابع می‌توانند با استفاده از نحوی -> اعلام شوند که نمایشی مختصرتر را امکان‌پذیر می‌کند. در Swift، توابع نیاز به نوع‌گذاری صریح و یک دستور بازگشت دارند.

مثال CoffeeScript:

square = (x) -> x * x

مثال Swift:

func square(x: Int) -> Int {
    return x * x
}

مستندات CoffeeScript
مستندات Swift

درک لیست

CoffeeScript از درک لیست پشتیبانی می‌کند که امکان تبدیل‌های مختصر آرایه را فراهم می‌کند. Swift از توابع مرتبه بالاتر مانند map استفاده می‌کند.

مثال CoffeeScript:

squares = [x * x for x in [1..5]]

مثال Swift:

let squares = (1...5).map { $0 * $0 }

مستندات CoffeeScript
مستندات Swift

بازگشت ضمنی

CoffeeScript اجازه بازگشت ضمنی را می‌دهد، در حالی که Swift نیاز به یک دستور بازگشت صریح دارد.

مثال CoffeeScript:

double = (x) -> x * 2

مثال Swift:

func double(x: Int) -> Int {
    return x * 2
}

مستندات CoffeeScript
مستندات Swift

وراثت کلاس

هر دو زبان از وراثت کلاس پشتیبانی می‌کنند، اما نحوی به طور قابل توجهی متفاوت است.

مثال CoffeeScript:

class Animal
  speak: -> 'Roar'

مثال Swift:

class Animal {
    func speak() -> String {
        return "Roar"
    }
}

مستندات CoffeeScript
مستندات Swift

عملگر اسپلت

عملگر اسپلت CoffeeScript اجازه می‌دهد تا لیست‌های آرگومان با طول متغیر داشته باشیم، در حالی که Swift از پارامترهای متغیر استفاده می‌کند.

مثال CoffeeScript:

sum = (args...) -> args.reduce(0, (a, b) -> a + b)

مثال Swift:

func sum(_ args: Int...) -> Int {
    return args.reduce(0, +)
}

مستندات CoffeeScript
مستندات Swift

درج در رشته

هر دو زبان از درج در رشته پشتیبانی می‌کنند، اما نحوی متفاوت است.

مثال CoffeeScript:

"Hello, #{name}"

مثال Swift:

"Hello, \(name)"

مستندات CoffeeScript
مستندات Swift

پارامترهای پیش‌فرض

CoffeeScript اجازه می‌دهد تا پارامترهای پیش‌فرض به صورت مختصر تعریف شوند، در حالی که Swift نیاز به نحوی صریح دارد.

مثال CoffeeScript:

greet = (name = 'World') -> "Hello, #{name}"

مثال Swift:

func greet(name: String = "World") -> String {
    return "Hello, \(name)"
}

مستندات CoffeeScript
مستندات Swift

انتساب تخریب‌گر

CoffeeScript اجازه می‌دهد تا انتساب تخریب‌گر به طور مستقیم انجام شود، در حالی که Swift از انتساب تپلی استفاده می‌کند.

مثال CoffeeScript:

a, b = [1, 2]

مثال Swift:

let (a, b) = (1, 2)

مستندات CoffeeScript
مستندات Swift

توابع پیکانی

توابع پیکانی CoffeeScript مختصر هستند، در حالی که Swift از بسته‌ها با نحوی متفاوت استفاده می‌کند.

مثال CoffeeScript:

add = (a, b) -> a + b

مثال Swift:

let add = { (a: Int, b: Int) -> Int in return a + b }

مستندات CoffeeScript
مستندات Swift

فراخوانی‌های زنجیره‌ای

هر دو زبان از زنجیره‌ای کردن متدها پشتیبانی می‌کنند، اما نحوی کمی متفاوت است.

مثال CoffeeScript:

array.map (x) -> x * 2 .filter (x) -> x > 5

مثال Swift:

array.map { $0 * 2 }.filter { $0 > 5 }

مستندات CoffeeScript
مستندات Swift