[৬.৩] প্র্যাকটিস প্রব্লেমস (Practice Problems)
- রানটাইম এরর থেকে প্রোগ্রাম রিকভার করতে একটি defer ফাংশন লিখুন।
func main() {
// implements defer function
...
fmt.Println(“Starting program”)
var myArray [3]int
pos := 3
myArray[pos] = 1
fmt.Println(“Program finished.”)
}
2. দুটি পূর্ণসংখ্যা সংখ্যা যোগ করার একটি ফাংশন লিখুন এবং যদি কোনও ধরনের এরর ঘটে, তাহলে “something went wrong!” মেসেজটি প্রিন্ট করবেন।
func main() {
addition(number_1, number_2) // implement the addition function
}
3. একটি ফাংশন লিখুন যা একটি কাস্টম এরর প্রদান করে, যদি কোনো এরর ঘটে।
func main() {
// implement the doSomething function
...
err := doSomething()
if err != nil {
fmt.Println(“Error: ”, err)
}
}
4. একটি ফাংশন “Add” দেয়া আছে, যা ইনপুট হিসাবে দুটি পূর্ণসংখ্যা নেয় এবং তাদের যোগফল প্রদান করে। এখন এই ফাংশনের জন্য ইউনিট টেস্ট লিখুন।
import “testing”
func TestAdd (t * testing.T) {
Var tests = []struct {
input_1 int
input_2 int
expected int
}{
// Implements the test cases
...
}
// implement the checking logic
...
}
func Add (input_1, input_2 int) int {
return input_1 + input_2
}
5. ConvertStringToInt নামক একটি ফাংশন লিখুন যা একটি স্ট্রিং নেয় এবং এটিকে একটি পূর্ণসংখ্যাতে রূপান্তর করার চেষ্টা করে। যদি স্ট্রিংটিকে একটি পূর্ণসংখ্যাতে রূপান্তর করা না যায় তবে ফাংশনটি একটি এরর রিটার্ন করবে। ফাংশন সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে একটি টেস্ট ফাংশন লিখুন।
6. GetAverage নামক একটি ফাংশন লিখুন যা floats সংখ্যার একটি স্লাইস নেয় এবং সেইগুলির গড় রিটার্ন করে। স্লাইস খালি থাকলে, ফাংশনটি একটি এরর রিটার্ন করবে। ফাংশন সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে একটি টেস্ট ফাংশন লিখুন।
7. ReadFile নামক একটি ফাংশন লিখুন যা একটি ফাইল পাথ নেয় এবং একটি স্ট্রিং হিসাবে ফাইলের বিষয়বস্তু ফেরত দেয়। যদি ফাইলটি পড়া না যায় , ফাংশনটি প্যানিক হওয়া উচিত। প্যানিক থেকে রিকভার করতে এবং একটি এরর রিটার্ন করতে একটি Defer ফাংশন ব্যবহার করুন।
8. একটি ফাংশন লিখুন যা একটি পূর্ণসংখ্যা আর্গুমেন্ট হিসেবে নেয় এবং তার বর্গমূল রিটার্ন করে। ঋণাত্মক কোনো ভ্যালু পাস হলে প্যানিক এবং রিকভার ব্যবহার করে কেসটি হ্যান্ডেল করুন এবং পরিবর্তে একটি এরর রিটার্ন করুন।
9. একটি ফাংশন লিখুন যা একটি আর্গুমেন্ট হিসেবে একটি URL নেয় এবং স্ট্রিং হিসাবে response body রিটার্ন করে। প্যানিক ব্যবহার করুন এবং ইউআরএলটি বৈধ না হলে প্যানিক এবং রিকভার ব্যবহার করে কেসটি হ্যান্ডেল করুন এবং পরিবর্তে একটি এরর রিটার্ন করুন।
10. একটি ফাংশন লিখুন যা একটি চ্যানেলকে একটি আর্গুমেন্ট হিসাবে নেয় এবং এটিতে একটি মান পাঠায়। চ্যানেলটি বন্ধ হয়ে থাকলে প্যানিক এবং রিকভার ব্যবহার করে কেসটি হ্যান্ডেল করুন এবং পরিবর্তে একটি এরর রিটার্ন করুন।