উত্তর:
দেখুন, কোন প্যারেনস!
ডি এর ফাংশন এবং টেম্পলেট ফাংশনগুলিকে মান, পদ্ধতি (সহায়তা করবে না) এবং বৈশিষ্ট্য হিসাবে ডাকা যেতে পারে।
আমি বিশ্বাস করতে পারি না কেউ এখনও এ কথা বলেনি। যেগুলি বাইটগুলি সংরক্ষণ করে আমি তাদের তালিকা করব:
fun()
এবং এটি fun!()()
সংক্ষিপ্ত করে fun
(ধরে নেওয়া যায় যে কোনও ভেরিয়েবল নেই fun
)।fun(par)
সংক্ষিপ্ত করে par.fun
(ধরে par
নেওয়া fun
যেমন কোনও সম্পত্তি / পদ্ধতি নেই , পাশাপাশি এর par
মত প্রকাশ হওয়াও নয় 5+2
)।fun!(T)()
সংক্ষিপ্ত fun!T
fun!(T)(par)
সংক্ষিপ্তকরণ par.fun!T
(ধরে par
নেওয়া কোনও সম্পত্তি / পদ্ধতি নেই fun
)এবং অবজেক্টস সহ:
new cls()
এতে সংক্ষিপ্ত করুন new cls
(আরও জাভাস্ক্রিপ্ট কারও?)obj.fun()
এবং obj.fun!()()
সংক্ষিপ্তobj.fun
obj.fun!(T)()
সংক্ষিপ্ত obj.fun!T
একটি চূড়ান্ত জিনিস, পুরানো সংস্করণ ব্যবহার করুন । এটি আপনাকে অবহিত বৈশিষ্ট্যগুলি ব্যবহার করতে দেয় যা আপনার কোডকে ছোট করে। এটি বলেছিল, সেরা পরামর্শ: কোড কোড-গল্ফের পক্ষে ভাল নয়। এটি একটি দুর্দান্ত ভাষা, কেবল কোড-গল্ফের জন্য নয়।
ডি জাভাস্ক্রিপ্ট।
অবশ্যই না. কিন্তু, সঙ্গে তার আচরণ যখন float
, double
এবং real
, nan
একটি মান যা পরিচালনা করা হবে, এবং, যেমন আইইইই 754 দ্বারা নির্দিষ্ট হয়, নান নিজেই সঙ্গে সমান তুলনা না।
writeln(double.nan == double.nan); // false
অর্থ,
writeln(value!=value); // only true for nan
চেয়ে উপায় ছোট
import std.math;
writeln(isNaN(value));
স্পষ্টতই, সর্বদা বাস্তব কোডের math.isNaN
জন্য ব্যবহার করুন । ;)
ডি টাইপ অনুমান এবং একটি auto
কীওয়ার্ড আছে। যদি বস্তুটি না হয় int
, তবে auto
সম্ভবত সংক্ষিপ্ত।
auto
যখন সঙ্গে একটি মিশুক অ্যারে নির্মাণ কাজ KeyType[ValueType]
সিনট্যাক্সটা কি?
auto asd = ["a":1, "b": 2];
কাজ করে, তবে যেহেতু KeyType[ValueType]
মূলশব্দটির জায়গায় যাবে auto
, আমি জানি না যে এটি সর্বদা এমন ধরণের সাথে কাজ করবে যেগুলির জন্য অক্ষরগুলি নির্মাণ করা যায় না
auto arr = ["a": true, "b": 6];
কাজ করে, কী এবং মানগুলি অবশ্যই সামঞ্জস্যপূর্ণ ধরণের হতে হবে
ডি পদ্ধতিতে শৃঙ্খলায় দুর্দান্ত, তবে:
str.toLower.strip().split("").sort();
হিসাবে একই
sort(split(strip(str.toLower),""));
এবং সাধারণত অ-শিকলযুক্তটি সংক্ষিপ্ত হয়, যা আমি কেবল উপলব্ধি করেছিলাম, যা আমাকে ট্র্যাশ পরিচালনা করতে আমার উত্তরকে ছোট করতে দেয় : D
সি / সি ++ এর মতো main
হতে পারে int
বা হতে পারে void
তবে void main(){}
সর্বদা এর চেয়ে কম হবে int main(){return my_func_returning_int;}
।
int main(){return output}
সংক্ষিপ্ত হবে না ?
import std.stdio;void main(){write(7);}
কী দরকার। আমি সন্দেহ করি যে একটি প্রশ্ন প্রোগ্রামের একটি নম্বর ফেরত দেওয়ার আদেশ দেয় কারণ অনেক ভাষা রিটার্ন কোড সেট করতে পারে না
ডি, মাল্টিপারডিজম (অবজেক্ট ফাংশনাল) সিস্টেম প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসাবে, মনে হয় TIMTOWTDI কে জড়িয়ে ধরেছে, বা এটি করার একাধিক উপায় রয়েছে।
ঘটনাচক্রে, প্রোগ্রামটির আরজিভি লিখেছেন:
import std.stdio, std.array, std.algorithm;
void main(string[] args) {
for(int i=0;i<args.length;writeln(args[i++])){};
foreach(a;args)writeln(a);
each!writeln(args);
}
উল্লেখ্য সি-শৈলী জন্য লুপ প্রয়োজন {}
খালি ব্লক এবং একটি সেমিকোলন বা ফাঁকা বিবৃতি হিসাবে কিছুই গ্রহণ করবে না, এই ক্ষেত্রে । সাধারণত, বা
;
কোনও বিকল্প নেই।
char*
জায়গায় ব্যবহার করতে পারেন string
?
function D main parameters must be main() or main(string[] args)
তদুপরি, char
আক্ষরিকভাবে একটি চরিত্র, আক্ষরিকভাবে একটি চরিত্রের char*
পয়েন্টার এবং char[]
অক্ষর অক্ষরের অ্যারে (স্ট্রিং পৃথক পৃথক)। ডি! = সি || সি ++
ডি এর কয়েক ধরণের সি # স্টাইল ল্যাম্বডা এক্সপ্রেশন রয়েছে, যা নির্ধারিত হয়ে একা দাঁড়িয়ে থাকতে পারে:
(int a,int b)=>a*b;
auto a=(int a,int b)=>a*b;
তবে, সি # এর বিপরীতে, স্বাক্ষরের প্রকারগুলি এখনও দরকার কারণ ডিতে হ্যাসেল-স্তরের ধরণের ইনফারেন্সিং নেই।
T f(T)(T a,T b){return a + b}
অনুমান করা উচিত টি হিসাবে int- এ মধ্যেf(5);
অন্য কোনও যুক্তি ছাড়াই কোনও কোনও ফাংশনে কল করা
reverse(x);
প্রায় সর্বদা সংক্ষিপ্ত করা যেতে পারে
x.reverse;
বাইট বা আরও কিছু শেভ করতে
এটি কারণ .
এলএইচএসকে একটি অন্তর্নিহিত প্রথম যুক্তি তৈরি করে এবং টেম্প্লেটিংয়ে আমাদেরকে অর্গগুলির জন্য সঠিক ফাংশনটি বেছে নিতে দেয়।
x.reverse(y, z)
তখন বিন্দু
x.reverse(y,z)
এবং reverse(x,y,z)
একই বাইট গণনা আছে।
x.reverse(y, z)
করছেন x.reverse
?