let angle = 45° // angle will be in radians, 45 is in degrees
সুইফট 3 এর অধীন সংকলন করুন । তবুও সমস্ত মান বজায় রাখুন, সিজিফ্লোটস সহ রেডিয়ানে সমস্ত গণনা করুন ... তবে ডিগ্রীতে ধ্রুবকগুলির সাথে কোডটি আরও পঠনযোগ্য করে তুলুন। উদাহরণস্বরূপ: 90।
চিহ্নটি জাদুকরীভাবে রেডিয়ান রূপান্তর করতে ডিগ্রি করবে।
এটি কীভাবে সেট আপ করবেন:
° চিহ্নের জন্য একটি পোস্টফিক্স অপারেটর সংজ্ঞায়িত করুন এবং ব্যবহার করুন। এই অপারেটরটি ডিগ্রি থেকে রেডিয়ানে রূপান্তর করবে। এই উদাহরণটি ইনটসের জন্য, আপনার যদি প্রয়োজন হয় তবে এটি ফ্লোটের ধরণের জন্যও প্রসারিত করুন।
postfix operator °
protocol IntegerInitializable: ExpressibleByIntegerLiteral {
init (_: Int)
}
extension Int: IntegerInitializable {
postfix public static func °(lhs: Int) -> CGFloat {
return CGFloat(lhs) * .pi / 180
}
}
ব্যবহারের কয়েকটি উদাহরণ:
let angle = 45°
contentView.transform = CGAffineTransform(rotationAngle: 45°)
let angle = 45
contentView.transform = CGAffineTransform(rotationAngle: angle°)
সতর্কবাণী!
এই রূপান্তরটি দু'বার ব্যবহার করা খুব সহজ (ভুল হিসাবে রেডিয়ানগুলির মধ্যে ইতিমধ্যে একটি মান হিসাবে), আপনি ফলাফল হিসাবে খুব অল্প সংখ্যক পাবেন এবং সম্ভবত ফলশ্রুতি কোণটি সর্বদা শূন্য হবে ... একই ব্যবহার করবেন না ° দুবার মান (দুবার রূপান্তর করবেন না) !!:
// OBVIOUSLY WRONG!
let angle = 45°° // ° used twice here
// WRONG! BUT EASY TO MISS
let angle = 45° // ° used here
contentView.transform = CGAffineTransform(rotationAngle: angle°) // ° also used here