স্কাল আন্ডারস্কোর - এরর: প্রসারিত ফাংশনের জন্য পরামিতি প্রকারের অনুপস্থিত missing


88

আমি জানি যে এ নিয়ে বেশ কয়েকটি প্রশ্ন রয়েছে, তবে আমি একটি সাধারণ উদাহরণ তৈরি করেছি যা আমার মনে হয়েছিল কাজ করা উচিত, তবে এখনও তা হয় না এবং আমি নিশ্চিত না কেন আমি বুঝতে পেরেছি

val myStrings = new Array[String](3)
// do some string initialization

// this works
myStrings.foreach(println(_))


// ERROR: missing parameter type for expanded function
myStrings.foreach(println(_.toString))

দ্বিতীয় বিবৃতি সংকলন করে না কেন কেউ ব্যাখ্যা করতে পারেন?


4
এমনকি সহজ:myStrings.foreach (println)
ব্যবহারকারী অজানা

উত্তর:


120

এটি প্রসারিত:

myStrings.foreach(println(x => x.toString))

তুমি চাও:

myStrings.foreach(x => println(x.toString))

বেনামে ফাংশনগুলির জন্য স্থানধারক সিনট্যাক্সটি কোনও ফাংশন সহ ক্ষুদ্রতম সম্ভাব্য এক্সপ্রেশনটি প্রতিস্থাপন করে।



যুক্তির জন্য myStrings.foreach(println(_))স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয় কেন ? toStringprintln
কেভিন মেরেডিথ

4
@ কেভি মেরেডিথ প্রিন্টলন যেকোন বস্তু পাস করার বিষয়ে
টু স্ট্রিং

4
বেনামী কাজকর্মের জন্য স্থানধারক সিনট্যাক্স একটি ফাংশন সঙ্গে ক্ষুদ্রতম সম্ভব ধারণকারী অভিব্যক্তি প্রতিস্থাপন করে। : সন্দেহ আমি এই প্রশ্নের প্রকাশ সঙ্গে আমাকে সাহায্য stackoverflow.com/questions/37589210/...
GA1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.