タグ

qiitaとgenericsに関するnabinnoのブックマーク (5)

  • TypeScript1.8 入門④ (ジェネリクス) - Qiita

    ジェネリクスとは「抽象化されたデータ型」を表現する機能です。 同じ様な関数だが、型違いの場合に、引数である型を抽象的に使う時に便利な機能です。 ジェネリクスを使わない例では、 let getStringArray = (value: string): string[] => { return [value, value, value]; }; let getNumberArray = (value: number): number[] => { return [value, value, value]; }; 冗長ですよね。 関数の受け取る引数が違うだけなのに、複数の関数を定義している例です。 だめな解決策としては、型の部分をany型にするという解決策がありますが、それではTypeScriptで静的型付けをしている意味が全くありません。 そこで登場するのが、 ジェネリクス という機能です。

    TypeScript1.8 入門④ (ジェネリクス) - Qiita
  • RustのGenericsを触っていて腑に落ちなかったところ - Qiita

    fn foo<T>() { use std::sync::{Once, ONCE_INIT}; static INIT: Once = ONCE_INIT; INIT.call_once(|| { // run initialization here println!("Called"); }); } fn main() { foo::<i64>(); foo::<i64>(); foo::<isize>(); } 0000000000007510 <_ZN4test4main17h916a53db53ad90a1E>: 7510: 50 push rax 7511: e8 5a ff ff ff call 7470 <_ZN4test3foo17h61cadb66d9062e2eE> 7516: e8 55 ff ff ff call 7470 <_ZN4test3foo17h61cad

    RustのGenericsを触っていて腑に落ちなかったところ - Qiita
  • golang と Generics と吾 - Qiita

    吾はGoでGenericsがないことに関してはわりと肯定的な立場ではあるのだが、流石に「golang と Generics と私 」の記事の例はどうかと思ったので、畳み込みfold関数を例にGenericsが解決する問題を例示してみようと思う。 なぜfoldかというと、 List<T> の要素を加算して集約する処理を書くなら普通はfoldで実装するし、foldがあればmapもfilterも実装できるので。 javaで畳み込み Stream APIで用意されてるreduceで一発です List<Integer> list = Arrays.asList(1, 2, 3); // listの加算とか畳み込みで一発ですよ int result = list.stream().reduce((a, b) -> a + b).get();

    golang と Generics と吾 - Qiita
  • ジェネリクスの使いどころを考えてみる - Qiita

    この記事はTypeScript Advent Calendarの6日目の記事です。 この記事では、主にTypeScriptの型定義ファイルを作成する時、どのようにジェネリクスを使うと良いのかを、jQuery の型定義を元に考えてみます。 とは言ってもあまりTypeScriptの文法面に詳しいわけではないので、むしろ学習メモですが... 動機 TypeScriptでは DefinitelyTypedコミュニティに、様々なjsライブラリの型定義ファイルが集約されており、普段、自分で型定義ファイルを作成する際に上手い書き方がわからない時など、このサイトで他のライブラリを参考にすることがよくあります。 それらのライブラリで頻繁にジェネリクスが使われているの目にするうち、自分自身では今のところほとんどジェネリクスを使うことがないのですが、「やっぱり一度理解しておかないといけないのでは...」という気

    ジェネリクスの使いどころを考えてみる - Qiita
  • TypeScript 1.6.0-beta 変更点 - Qiita

    TypeScript 1.6.0-betaが出ました! 今回のアップデートはかなり多くの更新を含む、大規模なアップデートであると言えます。 ↑ここまで前回のコピペ だからlatestタグで -beta を出すんじゃねぇって言ってんだろ(#゚Д゚)ゴルァ!! と思わなくもないですが、出たら出たで嬉しいものです。 追記 @vvakame npm@2.11.2で、pre-release version(= tag付きのversion)をmatchさせるのを止めたようです。docsには元よりそう書いてあったっぽく、patchという認識。 https://t.co/rygKxlYRE7 — Daijiro Wachi ☕ (@watilde) 2015, 9月 5 なので、npm install typescript だと1.5.3が入って、npm install typescript@lates

    TypeScript 1.6.0-beta 変更点 - Qiita
  • 1