38. 型推論
? 変数名定義の時にクラス名の有無でこんなに違うかーっ
てくらいスッキリします
[Scala]
val credentials = new BasicAWSCredentials(accessKey, secretKey)
val s3client = new AmazonS3Client(credentials)
val localFile = new File("ローカルファイルパス")
val bucketName = "バケット名"
val ?lePath = "S3のアップロード先のパス"
val upReq = new PutObjectRequest(bucketName, ?lePath, localFile)
s3client.putObject(upReq)
[Java]
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
AmazonS3 s3client = new AmazonS3Client(credentials);
File localFile = new File("ローカルファイルパス");
String bucketName = "バケット名";
String ?lePath = "S3のアップロード先のパス";
PutObjectRequest upReq = new PutObjectRequest(bucketName, ?lePath, 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)
と変更した場合、①はコンパイルエラーになる