メソッドチェーン

Swift や Java、D 、Dart では、高階関数を使って配列やリストのフィルタリングやマッピング、ソーティングを行うことができます。

method_chaining.swift

var array:[Int] = [-5, -3, -1, -4, -2, 0, 2, 4, 1, 3, 5]
  .filter {$0 > 0}
  .map {$0 * $0}
array.sort {$0 < $1}
print(array)

method_chaining.java

import java.util.*;
import java.util.stream.*;

class Main {
  public static void main(String... args) {
    Stream<Integer> stream = Stream.of(-5, -3, -1, -4, -2, 0, 2, 4, 1, 3, 5);
    stream
      .filter(x -> x > 0)
      .map(x -> x * x)
      .sorted((x, y) -> x - y)
      .forEach(System.out::println);

    List<Integer> list = Arrays.asList(-5, -3, -1, -4, -2, 0, 2, 4, 1, 3, 5);
    list
      .stream()
      .filter(x -> x > 0)
      .map(x -> x * x)
      .sorted((x, y) -> x - y)
      .forEach(System.out::println);
  }
}

method_chaining.d

import std.algorithm, std.array, std.stdio;

void main() {
  [-5, -3, -1, -4, -2, 0, 2, 4, 1, 3, 5]
    .filter!(x => x > 0)
    .map!(x => x * x)
    .array
    .sort!("a < b")
    .writeln;
}

method_chaining.dart

main() {
  var list = [-5, -3, -1, -4, -2, 0, 2, 4, 1, 3, 5]
    .where((x) => x > 0)
    .map((x) => x * x)
    .toList();
  list.sort((x, y) => x - y);
  print(list);
}


参考サイト

1.IBM Swift Sandbox

広告

マウスオーバーすると画像が拡大するサンプル

下記の zoom1.htm と zoom2.htm は、画像をマウスオーバー(マウスホバー)すると、その画像が拡大するサンプル html です。

zoom1.htm
<html>
<head>
<style>
img.zoom:hover{transform:scale(5); transition:1s;}
</style>
</head>
<body>
<img class="zoom" src="image.jpg" width="100"/>
</body>
</html>

zoom2.htm
<html>
<head>
<style>
table{left:0; right:0; margin:auto;}
.zoom img:hover{transform:scale(2); transition:1s;}
</style>
</head>
<body>
<table class="zoom">
<tr>
<td><img src="image1.jpg" width="100"/></td>
<td><img src="image2.jpg" width="100"/></td>
</tr>
<tr>
<td><img src="image3.jpg" width="100"/></td>
<td><img src="image4.jpg" width="100"/></td>
</tr>
</table>
</body>
</html>

href.htm
<html>
<body>
<div align="center">
<a href="image.jpg" target="_blank">
<img src="image.jpg" width="100"/>
</a>
</div>
</body>
</html>