string - स्केल में एक चरित्र/स्ट्रिंग n बार कुशलता से दोहराएं



scala char (1)

मैं निम्नलिखित अधिक कुशलता से करना चाहूंगा:

def repeatChar(char:Char, n: Int) = List.fill(n)(char).mkString
def repeatString(char:String, n: Int) = List.fill(n)(char).mkString

repeatChar('a',3)     // res0: String = aaa
repeatString("abc",3) // res0: String = abcabcabc

तार के लिए आप बस "abc" * 3 लिख सकते हैं, जो StringOps माध्यम से काम करता है और पर्दे के पीछे एक StringBuffer का उपयोग करता है।

पात्रों के लिए मुझे लगता है कि आपका समाधान बहुत उचित है, हालांकि char.toString * n यकीनन स्पष्ट है। क्या आपके पास List.fill पर संदेह करने का कोई कारण है जो आपकी आवश्यकताओं के लिए पर्याप्त कुशल नहीं है? आप अपना स्वयं का तरीका लिख ​​सकते हैं जो StringBuffer ( StringOps पर * समान) का उपयोग करेगा, लेकिन मैं पहले स्पष्टता के लिए लक्ष्य बनाने का सुझाव StringOps और फिर दक्षता के बारे में चिंता करूंगा जब आपके पास ठोस सबूत होंगे कि आपके कार्यक्रम में एक मुद्दा है।





string-concatenation