में गणना के लिए इकाइयों को संरक्षित करना मैं सोच रहा था कि क्या कोई मीठी भाषाएं हैं जो "फीट" बनाम "इंच" या "सेमी" आदि के लिए कुछ प्रकार की अमूर्तता प्रदान करती हैं। मैं जावा में निम्नलिखित की तरह कुछ करने पर विचार कर रहा था:प्रोग्रामिंग
u(56).feet() + u(26).inches()
और परिणाम के रूप में
17,7292 मीटर की तरह कुछ प्राप्त कर सकेंगे।
एक नया मूल्य बनाते समय एक संभावित दृष्टिकोण है, इसे तुरंत "आधार" इकाई में बदल दें, जैसे मीटर या कुछ, ताकि आप उन्हें आसानी से जोड़ सकें।
हालांकि, मैं बहुत बल्कि, इकाइयों की रक्षा करने की क्षमता है, ताकि कुछ की तरह
u(799.95555).feet() - u(76).feet()
रिटर्न
723.95555 feet
और नहीं
243.826452 meters - 23.1648 meters = 220.661652 meters
//220.661652 meters to feet returns 723.955551 feet
इस समस्या की तरह लगता है के बाद से यह वास्तव में आम होगा, क्या कोई ढांचा या यहां तक कि एक प्रोग्रामिंग भाषा है जो हैंडल मौजूद है यह सुंदरता से?
मैं के रूप में वे मेरी तरीकों में हैं मैं सिर्फ इकाइयों में जोड़ सकते हैं लगता है, मिलान इकाइयों को एक साथ जोड़ने और केवल +-*/
[जोड़ें/घटाना/गुणा/विभाजन] जब वे अनुरोध कर रहे हैं, जो जोड़ने के लिए अच्छा है और करने के क्रम में परिवर्तित करने के घटाने:
//A
{
this.inches = 36.2;
this.meters = 1;
}
//total length is 1.91948 m
अगर मैं मान
//B
{
this.inches = 0.8;
this.meters = 2;
}
//total length is 2.02032 m
के साथ एक वस्तु बी को यह जोड़ सकते हैं और मैं एक नया उद्देश्य यह है कि है
मिल 10जो पूरी तरह से भयानक है, जब भी मुझे कोई समस्या नहीं है, मैं इसे परिवर्तित कर सकता हूं। लेकिन इस तरह के गुणा विफल हो जाएगा के रूप में संचालन ...
//A * B = 3.87796383 m^2
{
this.inches = 28.96;
this.meters = 2;
}
// ...but multiplying piece-wise and then adding
// gives you 2.01868383 m^2, assuming you make 2m*1m give you 2 m^2.
तो सब मैं वास्तव में है कि उदाहरण के साथ दिखाने के लिए चाहते थे कि
(A1 + A2) * (Z1 + Z2) is not (A1 * Z1) + (A2 * Z2)
और मैं यकीन है कि इसका मतलब यह एक एक में बदलने के लिए है हूँ सामान्य इकाई अगर वे गुणा करना या विभाजित करना चाहते हैं।
उदाहरण कर्मकर्त्ता जवाब हतोत्साहित करने के लिए ज्यादातर था, जिसे आप जोड़ना या उन्हें टुकड़ा के लिहाज से अंतिम क्षण में परिवर्तित करने, के बाद से *
और /
असफल हो जायेगी पहले घटाना।
tl; dr: क्या प्रोग्रामिंग में इकाइयों को संरक्षित करने के लिए कोई चालाक तरीका हैं? विधियों/दिनचर्याओं का नाम देने के लिए चालाक तरीके हैं जैसे कि मेरे लिए यह समझना आसान है कि मैं क्या जोड़ रहा हूं और घटा रहा हूं, आदि?
फ़्रिंक अद्भुत है। इसे आसानी से जावा से भी उपयोग किया जा सकता है। इसके अलावा, किसी भी भाषा डिजाइनर जो 30 मिनट के फार्ट मजाक में गंभीर सम्मेलन में एक वार्तालाप करने का प्रबंधन करता है, कुछ मुफ्त स्टैक ओवरफ्लो पीआर का हकदार है! –