2012-12-25 22 views
8

मैं स्काला में पुस्तक प्रोग्रामिंग है कि मैं लेखन से एक स्केला स्क्रिप्ट शुरू कर सकता है से सीखा है:एक स्कैला स्क्रिप्ट शुरू करने के दो तरीके, जो बेहतर है?

#!/bin/sh 
exec scala "$0" "[email protected]" 
!# 
println("hello world") 

कि ठीक है, लेकिन मैं भी इस शैली की कोशिश की:

#!/usr/bin/env scala 
!# 
println("hello world") 

और पाया यह भी सही ढंग से चलता है।
तो मुझे नहीं पता कि दोनों के बीच क्या अंतर है।
और, यदि दोनों ठीक है, तो क्यों पुस्तक पूर्व प्रदर्शन का चयन करने के लिए चुनती है, जो थोड़ी देर लगती है?

उत्तर

5

वे समकक्ष हैं। अंतर यह है कि उत्तरार्द्ध स्केल दुभाषिया शुरू करने के लिए एक खोल प्रक्रिया चलाता है, जबकि पूर्व env प्रोग्राम का उपयोग करता है, जो एक खोल से अधिक हल्का होता है, और जाहिर है कि एक ही फ़ाइल में मिश्रण शेल कोड और स्कैला की आवश्यकता नहीं होती है (जो हो सकता है अपने संपादक और अन्य टूल्स परेशान करें)।