আমি গাণিতিক ফাংশন ব্যবহার করব sqrt(), floor(), round(), sin(), ইত্যাদি?
যখন করছেন:
_ = floor(2.0)
_ = sqrt(2.0)
আমি পাই:
ত্রুটি: অমীমাংসিত শনাক্তকারীর ব্যবহার 'তল'
ত্রুটি: অমীমাংসিত শনাক্তকারী 'স্কয়ার্ট' এর ব্যবহার

উত্তর:
অন্যান্য হিসাবে উল্লিখিত আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে। আপনি যদি চান শুধুমাত্র গাণিতিক ফাংশন। আপনি কেবল ডারউইন আমদানি করতে পারেন।
import Darwin
আপনি যদি গাণিতিক ফাংশন এবং অন্যান্য মানক ক্লাস এবং ফাংশন চান। আপনি ফাউন্ডেশন আমদানি করতে পারেন।
import Foundation
আপনি যদি ইউজার ইন্টারফেসের জন্য সবকিছু এবং ক্লাসগুলি চান তবে এটি আপনার খেলার মাঠ ওএস এক্স বা আইওএসের জন্য কিনা তা নির্ভর করে।
ওএস এক্স এর জন্য আপনার প্রয়োজন কোকো আমদানি।
import Cocoa
আইওএসের জন্য আপনার ইউআইকিট আমদানি করা দরকার।
import UIKit
ফাইল ইন্সপেক্টর (⌥⌘1) খোলার মাধ্যমে আপনি সহজেই আপনার খেলার মাঠের প্ল্যাটফর্মটি আবিষ্কার করতে পারেন।

No such module 'Cocoa'
পুরোপুরি সুনির্দিষ্টভাবে বলতে গেলে ডারউইন যথেষ্ট is পুরো কোকো ফ্রেমওয়ার্কটি আমদানি করার দরকার নেই।
import Darwin
অবশ্যই, আপনার যদি কোকো বা ফাউন্ডেশন বা অন্যান্য উচ্চ স্তরের ফ্রেমওয়ার্কের উপাদানগুলির প্রয়োজন হয় তবে আপনি সেগুলি পরিবর্তে আমদানি করতে পারেন
sqrt, floorএবং roundকারণ আপনার নেটিভ যথাক্রমে ব্যবহার করতে পারেন 0.5.squareRoot(), Int(0.5)এবং 0.5.round()।
লিনাক্সে যেমন উবুন্টুতে সুইফ্ট [২.২] ব্যবহার করা লোকের জন্য, আমদানি আলাদা!
এটি করার সঠিক উপায় হ'ল গ্লিবিসি ব্যবহার করা। এটি কারণ ওএস এক্স এবং আইওএসে, ইউনিক্সের মতো প্রাথমিক এপিআইগুলি ডারউইনে থাকে তবে লিনাক্সে, এগুলি গ্লিবসিতে অবস্থিত। আমদানি ফাউন্ডেশন আপনাকে এখানে সহায়তা করবে না কারণ এটি নিজে থেকে আলাদা করে তোলে না। এটি করার জন্য, আপনাকে স্পষ্টভাবে এটিকে নিজে আমদানি করতে হবে:
#if os(macOS) || os(iOS)
import Darwin
#elseif os(Linux) || CYGWIN
import Glibc
#endif
আপনি আরও জানতে এখানে ফাউন্ডেশন কাঠামোর বিকাশ অনুসরণ করতে পারেন
হিসাবে নির্দিষ্ট দ্বারা @ Coeur , দ্রুতগতি 3.0 থেকে শুরু কিছু ম্যাথ ফাংশন এখন ধরনের নিজেদের অংশ। উদাহরণস্বরূপ, ডাবল এখন একটি আছে squareRoot ফাংশন। একইভাবে, ceil, floor, round, সমস্ত সঙ্গে অর্জন করা যেতে পারে Double.rounded(FloatingPointRoundingRule) -> Double।
তদুপরি, আমি সবেমাত্র উবুন্টু 18.04-এ সুইফটের সর্বশেষতম স্থিতিশীল সংস্করণটি ডাউনলোড এবং ইনস্টল করেছি এবং দেখে মনে হচ্ছে Foundationএখন গণিতের ফাংশনগুলিতে অ্যাক্সেস পাওয়ার জন্য আপনার কাঠামোগুলি আমদানি করা দরকার। আমি এর জন্য ডকুমেন্টেশন সন্ধান করার চেষ্টা করেছি, কিন্তু কিছুই সামনে আসে নি।
➜ swift
Welcome to Swift version 4.2.1 (swift-4.2.1-RELEASE). Type :help for assistance.
1> sqrt(9)
error: repl.swift:1:1: error: use of unresolved identifier 'sqrt'
sqrt(9)
^~~~
1> import Foundation
2> sqrt(9)
$R0: Double = 3
3> floor(9.3)
$R1: Double = 9
4> ceil(9.3)
$R2: Double = 10
sqrt, floorএবং roundকারণ আপনার নেটিভ যথাক্রমে ব্যবহার করতে পারেন 0.5.squareRoot(), Int(0.5)এবং 0.5.round()।
powআমি অন্তর্ভুক্ত করা প্রয়োজন Glibc, লিনাক্সের জন্য ধন্যবাদ!
আপনি এগুলি সরাসরি ইনলাইন ব্যবহার করতে পারেন:
var square = 9.4
var floored = floor(square)
var root = sqrt(floored)
println("Starting with \(square), we rounded down to \(floored), then took the square root to end up with \(root)")
[1,2,3]এটি ফিরে আসবে y = xবা আমি এটি দিয়ে দেব [1,4,9] এটি ফিরে আসবে y = x^2বা ঠিক এমনভাবে কিছু ঘটেছিলf(x)
গণিত-ফাংশন ব্যবহার করতে আপনাকে করতে হবে import Cocoa
আপনি অন্যান্য সংজ্ঞায়িত গাণিতিক ক্রিয়াকলাপগুলি নিম্নলিখিত উপায়ে দেখতে পাচ্ছেন। ফাংশনটির নামের উপর একটি সিএমডি-ক্লিক করুন sqrtএবং আপনি অন্যান্য সমস্ত গ্লোবাল গণিত ফাংশন এবং কনস্ট্যান্ট সহ ফাইলটি প্রবেশ করুন।
ফাইলের একটি ছোট স্নিপেট
...
func pow(_: CDouble, _: CDouble) -> CDouble
func sqrtf(_: CFloat) -> CFloat
func sqrt(_: CDouble) -> CDouble
func erff(_: CFloat) -> CFloat
...
var M_LN10: CDouble { get } /* loge(10) */
var M_PI: CDouble { get } /* pi */
var M_PI_2: CDouble { get } /* pi/2 */
var M_SQRT2: CDouble { get } /* sqrt(2) */
...
import Cocoaতাদের ব্যবহার করতে হবে।
কাজ করার সুইফ্ট পদ্ধতির জন্য, আপনি চেষ্টা করতে পারেন এবং সুইফট স্ট্যান্ডার্ড লাইব্রেরিতে উপলব্ধ সরঞ্জামগুলি ব্যবহার করতে পারেন। এগুলি যে কোনও প্ল্যাটফর্মে কাজ করা উচিত যা সুইফট চালাতে সক্ষম হয়।
বদলে floor(), round()এবং rounding রুটিন আপনি ব্যবহার করতে পারেন বাকি rounded(_:):
let x = 6.5
// Equivalent to the C 'round' function:
print(x.rounded(.toNearestOrAwayFromZero))
// Prints "7.0"
// Equivalent to the C 'trunc' function:
print(x.rounded(.towardZero))
// Prints "6.0"
// Equivalent to the C 'ceil' function:
print(x.rounded(.up))
// Prints "7.0"
// Equivalent to the C 'floor' function:
print(x.rounded(.down))
// Prints "6.0"
এই বর্তমানে উপলব্ধ Floatএবং Doubleএবং এটি একটি রূপান্তর সহজ যথেষ্ট হওয়া উচিত CGFloatউদাহরণস্বরূপ।
বদলে sqrt()আছে squareRoot()FloatingPoint প্রোটোকল উপর পদ্ধতি। আবার, উভয় Floatএবং Doubleসাথে সামঞ্জস্য FloatingPointপ্রোটোকল:
let x = 4.0
let y = x.squareRoot()
ত্রিকোণমিতিক ফাংশনগুলির জন্য, স্ট্যান্ডার্ড লাইব্রেরি সাহায্য করতে পারে না, তাই আপনি অ্যাপল প্ল্যাটফর্মে লিনাক্স বা লিনাক্সের গ্লিবিসি আমদানি করা ভাল। আঙ্গুলগুলি অতিক্রম করে তারা ভবিষ্যতে আরও সুন্দর উপায় হবে।
#if os(OSX) || os(iOS)
import Darwin
#elseif os(Linux)
import Glibc
#endif
let x = 1.571
print(sin(x))
// Prints "~1.0"
Ambiguous reference to xএই উত্তরটি পরীক্ষা করে দেখুন: stackoverflow.com/a/34357943/1359306