বন্ধ:
ভেরিয়েবলগুলির হোল্ড একটি ফাংশন হোল্ড বনাম কোনও ফাংশন ব্যবহার করে নিজেই সহায়তা করতে পারে:
65 বাইট:
var r:(String,Int)->String={return String(repeating:$0,count:$1)}
66 বাইট:
func r(s:String,i:Int)->String{return String(repeating:s,count:i)}
এখানে ছোট পার্থক্য, তবে এটি কিছু ধাঁধাতে আরও প্রদর্শন করবে।
সংক্ষিপ্তকরণ কার্যাদি:
পূর্ববর্তী উদাহরণের দিকে তাকানো আমার কিছু মনে করিয়ে দেয়। কখনও কখনও, আপনি যদি যথেষ্ট সময় কোনও ফাংশন ব্যবহার করেন তবে এটির নামকরণের জন্য এটি স্থানের পক্ষে মূল্যবান:
এই:
String(repeating:$0,count:$1)
এটি:
var r:(String,Int)->String={return String(repeating:$0,count:$1)}
বা, আসলে, এটি আরও ভাল:
var r=String.init(repeating:count:)
আপনি কেবল r("Hello World",8)
পরিবর্তে কল করুনString(repeating:"Hello World",count:8)
প্রকারের ঘোষণাগুলি রেখে যাওয়া:
আমি একবার আর্গুমেন্টের ধরণটি সেট না করেই একটি ক্লোজার তৈরি করেছিলাম, এভাবে একটি ছোট উত্তর তৈরি করুন:
var f={(i)->Int in i-1+i%2*2}
সংকলকটি অনুমান i
করা হয়Int
।
দ্রুত পদ্ধতিতে অ্যারেগুলি তৈরি করুন:
আপনার যদি অ্যারের প্রয়োজন হয় তবে এটি তৈরি Ints
করতে একটি ব্যবহার করুন Range
:
Array(0...5)
এটি একই জিনিস করে:
[0,1,2,3,4,5]
এর পরিবর্তে If
বা অ্যারে Switch
:
এটি করার পরিবর্তে:
if n==0{return "a"}else if n==1{return "b"}else{return "c"}
আপনি সম্ভবত এটি করতে পারেন:
return ["a","b","c"][n]
সংক্ষিপ্ত প্রকারগুলি:
আপনি যদি ধরণের রূপান্তরটি প্রচুর ব্যবহার করে থাকেন তবে আপনি একটি টাইপ উপন্যাস তৈরি করতে চাইতে পারেন:
typealias f=Float
মানচিত্র:
মনে রাখবেন যে আপনার প্রায়শই ফাংশনে return
কীওয়ার্ডটি ব্যবহার করার প্রয়োজন হয় না map
।
চলমান সুইফট অনলাইন:
অনলাইনে চেষ্টা করুন যদিও এখন এটি সুইফটকে সমর্থন করে না !