38. 型推論
• 変数名定義の時にクラス名の有無でこんなに違うかーっ
てくらいスッキリします
[Scala]
val credentials = new BasicAWSCredentials(accessKey, secretKey)
val s3client = new AmazonS3Client(credentials)
val localFile = new File("ローカルファイルパス")
val bucketName = "バケット名"
val filePath = "S3のアップロード先のパス"
val upReq = new PutObjectRequest(bucketName, filePath, localFile)
s3client.putObject(upReq)
[Java]
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 s3client = new AmazonS3Client(credentials);
File localFile = new File("ローカルファイルパス");
String bucketName = "バケット名";
String filePath = "S3のアップロード先のパス";
PutObjectRequest upReq = new PutObjectRequest(bucketName, filePath, localFile);
s3client.putObject(upReq);
39. 名前付き引数
• 大好きです。Javaにもあれば良いのに
• 使う側が意識して設定するようになるのがイイと思います
• 引数の順番が変わった時にも追従してくれます
• 特にSlickのデータモデル(case class)のインスタンスを生成するときは嬉しい
• カラムの追加や順番を変更することが多いので
[Scala]
case class User(age:Int, name:String)
・
・
・
val hanako = User(7, “はなこ”) // ①
val jiro = User(age = 38, name = “二郎”) // ②
val taro = User(name = “太郎”, age = 17) // ③
→全てUserクラスのインスタンスが生成可能だが、
case class User(name:String, age:Int)
と変更した場合、①はコンパイルエラーになる