গোতে গল্ফ করার জন্য আপনার কাছে কোন সাধারণ টিপস রয়েছে? আমি কোড গল্ফিংয়ে নতুন এবং এমন ধারণাগুলি সন্ধান করছি যা সাধারণভাবে গল্ফ সমস্যার ক্ষেত্রে কোড প্রয়োগ করা যেতে পারে যা অন্তত গো-র কিছুটা নির্দিষ্ট।
অনুগ্রহ করে প্রতি উত্তরে একটি পরামর্শ দিন।
গোতে গল্ফ করার জন্য আপনার কাছে কোন সাধারণ টিপস রয়েছে? আমি কোড গল্ফিংয়ে নতুন এবং এমন ধারণাগুলি সন্ধান করছি যা সাধারণভাবে গল্ফ সমস্যার ক্ষেত্রে কোড প্রয়োগ করা যেতে পারে যা অন্তত গো-র কিছুটা নির্দিষ্ট।
অনুগ্রহ করে প্রতি উত্তরে একটি পরামর্শ দিন।
উত্তর:
@ এমএমবিএলএম এর উত্তরটি দ্বারা অনুপ্রাণিত এখানে ।
আপনি যখন কোনও প্যাকেজের ফাংশনগুলি বিশ্বব্যাপী নেমস্পেসে রেখে দিতে পারেন যখন আপনি সেগুলি এ জাতীয়ভাবে आयात করেন:
package main
import ."fmt"
func main() {
Printf("Hello World!")
}
আপনি যখন প্যাকেজগুলি আমদানি করবেন তখন আপনি নিজের পছন্দমতো নাম রাখতে পারেন।
package main
import f "fmt"
func main() {
f.Printf("Hello World\n")
}
এটি এখানে শিখেছি ।
import ."fmt"
এবং তারপরে Println
এবং বাকী fmt
কাজগুলি বিশ্বব্যাপী নেমস্পেসে রয়েছে। এছাড়াও, আপনার সেমিকোলনগুলির প্রয়োজন নেই। কখনও না, যদি না আপনার কোনও লাইনে একাধিক বক্তব্য থাকে
একাধিক চলক ঘোষণা:
i,s:=0,""
var(i int;s string)
স্ট্রিং রূপান্তর থেকে ইনট: (সীমিত তবে কখনও কখনও সহায়ক)
n:=byte("9"[0])-48 // actual type is uint8
n,_:=strconv.Atoi("9")
এবং বিপরীতভাবে
s:=string(9+48)
s:=strconv.Itoa(9)
fmt.Sprint
সম্ভবত বাইটস সংরক্ষণ করতে পারে strconv.Atoi
, কারণ আপনি সম্ভবত fmt
ইতিমধ্যে আমদানি করেছেন ।
strconv
হয় গল্ফ কোডটি সাধারণ কোডে কী হবে তা কেবল দেখানোর জন্য সেখানে ছিল।
গো সংকলকটির পূর্বনির্ধারিত print
এবং println
ফাংশন রয়েছে যা এফএমটি আমদানির প্রয়োজন হয় না, এর পরিবর্তে।
package main
import."fmt"
func main(){Printf(`Hello World
`)}
আপনি এটি লিখতে পারেন।
package main
func main(){print(`Hello World
`)}
নোট করুন যে এটি STDERR এ আউটপুট দেয়।
রেঞ্জ লুপের জন্য প্রচুর স্টাফ .চ্ছিক।
স্ট্যান্ডার্ড সংস্করণ:
for i,v:=range a{
// Do stuff
}
যদি i
, v
ইতিমধ্যে সংজ্ঞায়িত করা হয়েছে এবং ওভাররাইট করা যায়:
for i,v=range a{
// Do stuff
}
আপনি যদি মূল্য সম্পর্কে চিন্তা না করেন:
for i:=range a{
// Do stuff
}
আপনি যদি মানটির বিষয়ে চিন্তা না করেন এবং i
ইতিমধ্যে সংজ্ঞায়িত করা হয়েছে:
for i=range a{
// Do stuff
}
আপনি যদি সূচক বা মান সম্পর্কে চিন্তা করেন না:
for range a{
// Do stuff
}
যদি আপনি একটি অসীম লুপ চান:
for{
// Do stuff
}
আপনি যে কোনও সংখ্যক খোলার ধনুর্বন্ধনী এক লাইনে রাখতে পারেন, তবে যে লাইনে খোলার ধনুর্বন্ধনী রয়েছে তা অন্তত একটি বন্ধনী বন্ধনী ধারণ করতে পারে।
সঠিক:
func main(){if true{switch{case 1==1:for{break
}}}}
এছাড়াও সঠিক:
func main(){if true{switch{case 1==1:for{break}
}}}
এছাড়াও সঠিক:
func main(){if true{switch{case 1==1:for{
break}}}}
ত্রুটিপূর্ণ:
func main() {
if true{for{break}}
}
যান বিট অপারেশনের জন্য বিভিন্ন অপারেটর প্রাধান্য আছে, <<
, >>
, &
, ইত্যাদি সাধারণত নিম্ন প্রাধান্য চেয়ে আছে +
এবং -
সবচেয়ে ভাষায়, কিন্তু যান তারা হিসাবে একই প্রাধান্য আছে *
এবং /
।
Precedence Operator
5 * / % << >> & &^
4 + - | ^
3 == != < <= > >=
2 &&
1 ||
এটি কিছু বন্ধনী সংরক্ষণ করতে ব্যবহার করা যেতে পারে।
সর্বাধিক ভাষা:
(a&b)*c
যান:
a&b*c
Go
ট্যাগটি তৈরি করতে চাইব , কিন্তু তারপরে, গো এমনকি এখানে গল্ফ করার জন্য ব্যবহৃত হচ্ছে?