はてブログ

はてなブックマーク新着エントリーの過去ログサイトです。



タグ String

新着順 人気順 5 users 10 users 50 users 100 users 500 users 1000 users
 
(1 - 25 / 71件)

TypeScript 5.5で型述語を推論できて最高。配列のfilterも型安全に

2024/03/21 このエントリーをはてなブックマークに追加 16 users Instapaper Pocket Tweet Facebook Share Evernote Clip filter 述語 undefined null value

結論を先に言うと、6月リリース予定のTypeScript 5.5で次のようなコードが型安全になります。 従来: TypeScript 5.4以前 function isNumber(value: number | string): value is number { return typeof value === 'number'; } const result = [12, null, 24, undefined, 48] .filter((value): value is number => value ... 続きを読む

JavaScriptでObjectに空のStringを足すと0になる!?……わけではなかった

2024/01/23 このエントリーをはてなブックマークに追加 81 users Instapaper Pocket Tweet Facebook Share Evernote Clip Object JavaScript

ASTをみてみよう この不思議な現象を調査するために、AST(Abstract Syntax Tree: 抽象構文木)の状態を見てみることにしました。ASTはソースコードを構文解析した結果をツリー構造にしたもので、AST Explorerを使うと簡単に見ることができます。 ({}) + "" のAST ({}) + "" のASTをみると、ひとつの ExpressionStateme... 続きを読む

PHPからJavaScriptにデータを受け渡すときに考えること - Qiita

2023/01/01 このエントリーをはてなブックマークに追加 123 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita Array JSON unicode int

PHPのstringは任意のバイト列を扱えますが、JavaScript/JSONはUnicodeで扱える文字しか扱えません PHPのint / floatはプラットフォーム依存ですが、JavaScriptのnumberは整数と小数を型レベルで区別しません JSONのarrayに対応する型はPHPのarrayのうちリストであるものです PHPは配列(リスト)と連想配列を型レベルで区... 続きを読む

char* を Go の string に変換するテクニック

2022/12/24 このエントリーをはてなブックマークに追加 10 users Instapaper Pocket Tweet Facebook Share Evernote Clip char imp cGO コンパイラ テクニック

はじめに Go には cgo と呼ばれる、Go からC言語を扱う為の機能があります。go build を実行すると、内部でC言語のコンパイラが実行され、ソースの一部が Go に取り込まれます。 cgo とは まずは以下を見て下さい。 //go:build ignore // +build ignore package main /* int add(int a, int b) { return a + b; } */ imp... 続きを読む

TypeScriptにおける配列の共変性

2022/12/15 このエントリーをはてなブックマークに追加 130 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript ANIMAL 配列 Dog オブジェクト

const animal: Animal = { animal: "string", }; const dog: Dog = { animal: "string", dog: "string", }; いま,Dog <: Animalです. <:という記号は2つの型のあいだに書いて,「左の型が右の型のサブタイプである」と読みます. TypeScriptの型システムは構造的なので,2つのオブジェクトがサブタイプ関係にあるには... 続きを読む

【オブジェクト指向プログラミング】誰のもの?で理解するインターフェース

2022/11/12 このエントリーをはてなブックマークに追加 101 users Instapaper Pocket Tweet Facebook Share Evernote Clip インターフェース オブジェクト指向プログラミング args

前置き 背景 オブジェクト指向プログラミングのインターフェースについて、以下のような例で学んだ方は多いのではないでしょうか。 public interface Animal { void bark(); } public class Dog implements Animal { void bark() { System.out.println("ワン"); } } public static void main(String[] args){ Animal ani... 続きを読む

input[type=number] のステートを安易に number 型にしない - fsubal

2022/10/03 このエントリーをはてなブックマークに追加 11 users Instapaper Pocket Tweet Facebook Share Evernote Clip fsubal TypeScript input ステート 実装

#フロントエンド #TypeScript #React TL;DR input[type=number] には空文字とかも入力できるので、string 型で状態管理をしないと意図しない動きをすることがある ステートの型を縛るより input の value に渡るまでの実装を工夫する方が良い --- input[type=number] のステートを安易に number 型にするとだいたい後悔... 続きを読む

TypeScript で string 型の値に自動補完を効かせる: Days on the Moon

2021/09/11 このエントリーをはてなブックマークに追加 28 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript foo IDE bar 自動補完

結論 type X = 'foo' | 'bar' | (string & {}); のように、文字列リテラル型の共用体型に | (string & {}) を付け足した型 X を定義します。X 型は任意の文字列を受け付けますが、IDE (Visual Studio Code など) で X 型の値を入力するときには 'foo' と 'bar' が自動補完の候補として提示されます。 解説 単純に type X... 続きを読む

東京大学、Pythonプログラミング無料入門 pandasやJupyterなど幅広い | Ledge.ai

2021/08/29 このエントリーをはてなブックマークに追加 1298 users Instapaper Pocket Tweet Facebook Share Evernote Clip Ledge.ai Colaboratory 幅広い 東大 教材

画像は公式サイト(HTML)より 今回は東京大学(東大)が無料公開している、Pythonの初心者にもオススメの教材「Pythonプログラミング入門」を紹介する。SNS上では「ホントいい」「初心者にもわかりやすい」などと評判になっている。 本教材では「Colaboratoryによるノートブックの使い方」「文字列(string)」「条件分... 続きを読む

TypeScriptの型定義からバリデーションコードを生成するツールを書いた | Web Scratch

2021/03/26 このエントリーをはてなブックマークに追加 13 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript request response

create-validator-tsというTypeScriptの型定義からJSON Schemaを使ったバリデーションコードを生成するツールを書きました。 モチベーション expressなどでAPIを書くときに、Request/Responseが意図したものかどうかをバリデーションする必要があります。 特にreq.queryなどはStringが入ると予想しますが、オブジェクト... 続きを読む

Template Literal Types で「単位を持つ数値」の文字列型をきれいに扱いたい

2021/03/10 このエントリーをはてなブックマークに追加 10 users Instapaper Pocket Tweet Facebook Share Evernote Clip Template Literal Types 単位 数値

(この記事には一部うまくいってない部分が残ってるので、解決し次第追記します) ブラウザの二次元上の座標を計算するコードを書いていると、 px, rem, flex などの数値が入り乱れて、それらを文字列で管理してると扱いが難しくなります。また、ブラウザの DOM API は、コンテキスト次第で string | number みたいなノリ... 続きを読む

TypeScriptのユニオン型で「あるかもしれない」プロパティを表現するときのTips - uhyo/blog

2020/08/18 このエントリーをはてなブックマークに追加 15 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript uhyo foo プロパティ Tips

TypeScriptのユニオン型はとても強力な機能で、TypeScriptのコードベースでは広く利用されています。 例えば、次のようにすると「fooプロパティを持つオブジェクトまたはbarプロパティを持つオブジェクト」という型を表現できます。 type FooObj = { foo: string }; type BarObj = { bar: number }; type FooOrBar = Foo... 続きを読む

nilがnilじゃないのでerrorになるのを静的解析で検出する - Qiita

2019/12/17 このエントリーをはてなブックマークに追加 15 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita nil fmt func err

package main import "fmt" type MyErr struct{} func (*MyErr) Error() string { return "MyErr" } func F1() *MyErr { return nil } func F2() error { return F1() } func main() { err := F2() if err != nil { fmt.Println("Error!") } } F1()がnilを返しているのでF2()もnilを返すのですが、返ってきたerrはnilに... 続きを読む

TypeScriptのMap<K, V>をJSON.stringify()に食わせると空のオブジェクトになって困るんですけどって時 - その手の平は尻もつかめるさ

2019/11/12 このエントリーをはてなブックマークに追加 39 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript foo map set Body

(TypeScriptに限らずJavaScriptでもだいたいこのような感じだと思いますが) 例えば以下のようなコードを書くと,出力としては {"body":{}} が得られます. const body = new Map<string, string>().set("foo", "bar"); console.log(JSON.stringify({body})); 本当は {"body": {"foo": "bar"}} のような構造がほしいと... 続きを読む

RuboCopで型情報を利用した解析を試している - pockestrap

2019/11/06 このエントリーをはてなブックマークに追加 21 users Instapaper Pocket Tweet Facebook Share Evernote Clip Pocke PoC rubocop pockestrap 変数

3行 RuboCopで「この変数はString」とかの情報を含めて解析させられないか試している まだPoCだけど、なんとなくは動いている https://github.com/pocke/rubocop-typed を見て 何をしているの rubocop-typed というプロジェクトで、RuboCopで今までできていなかった解析ができないか試しています。 github.com RuboCopの... 続きを読む

"型パズル"との付き合い方

2019/06/18 このエントリーをはてなブックマークに追加 203 users Instapaper Pocket Tweet Facebook Share Evernote Clip 型パズル 付き合い方 まえおき HTTPメソッド GET

まえおき❌ Compiler API、Language Service❌ 難解な型パズルを出題して型マウント取る話❌ 全TSerが型パズルするべきだ‍♀️ 型パズルと聞いて身構える方に身近に感じてもらいたい どっちが思考コストが高いかHTTPメソッド // ちゃんと渡せばOK const httpMethod: string = 'GET' // 正しくない値を渡してもエラーになって... 続きを読む

TypeScriptを使ってアプリケーションの設定ファイルを書く - その手の平は尻もつかめるさ

2019/06/09 このエントリーをはてなブックマークに追加 122 users Instapaper Pocket Tweet Facebook Share Evernote Clip TypeScript YAML JSON アプリケーション

アプリケーションの設定ファイルと言えばjsonやyamlなんかで書くことが多いと思うんですが,最近はTypeScriptで設定ファイルを書いております.このような感じ: export interface ApplicationConfig { readonly listenPort: number; readonly timeout: number; readonly apiBaseUrl: string; readonly loggerOptions: Lo... 続きを読む

本の虫: 2018-11のC++ドラフトの主要な変更

2019/01/07 このエントリーをはてなブックマークに追加 27 users Instapaper Pocket Tweet Facebook Share Evernote Clip 変更 Vector std constexpr ドラフト

N4792 C++20のドラフトが更新された。今回も強めの変更が入っている。 まずconstexprが大幅に強化された。 p1002r1.pdf Allowing dynamic_cast, polymorphic typeid in Constant Expressions C++20での最終的な目標は、std::vectorやstd::stringをconstexpr対応させることだ。そのために従来ならば実行時処理であった様... 続きを読む

物理科 素粒子分野の業績事情

2018/10/10 このエントリーをはてなブックマークに追加 371 users Instapaper Pocket Tweet Facebook Share Evernote Clip dlit パーマネント 殴り書き 文献 業績

人文系の文献の取り扱いとか業績についてちょっとだけ - dlitの殴り書き こちらの記事に賛同したので続いてみます。 確かに異分野の事情をお互いにわかっていたほうがみんな幸せになりますよね。パーマネントや学振の採用とか。 はじめに素粒子分野は大きく分けて 弦理論 (string)現象論 (phenomenology)格子場 (lattice... 続きを読む

Swift - プロトコルが型になるとき

2018/07/17 このエントリーをはてなブックマークに追加 20 users Instapaper Pocket Tweet Facebook Share Evernote Clip Swift プロトコル ジェネリクス init ANIMAL

@koher さんの記事、なぜSwiftのプロトコルはジェネリクスをサポートしないのかにおける議論は改めて記事にするだけの価値があるのでそうすることにします。 君の型は? まずは以下のコードをご覧ください。 import Foundation protocol Animal { var binomen:String { get } init() } struct Cat: Animal { let binomen ... 続きを読む

Java9から三項演算子でのunboxingの挙動がJava8とは変わっている - きしだのはてな

2018/06/18 このエントリーをはてなブックマークに追加 28 users Instapaper Pocket Tweet Facebook Share Evernote Clip Double why false GET 挙動

Java9からJDK11-ea18まで、三項演算子でのunboxingの挙動がJava8とは変わっているようです。 Double d = false ? 1.0 : new HashMap <String, Double>() .get("1"); yields null in #Java8, but NullPointerException in #Java10. Why?https://t.co/MUaql1vd9e— Nicolai Parlog (@nipafx) 2018年6月10日 次のようなコー... 続きを読む

Java9、10でStringの+=に副作用があるバグ - きしだのはてな

2018/06/11 このエントリーをはてなブックマークに追加 60 users Instapaper Pocket Tweet Facebook Share Evernote Clip Stack Overflow パク はてな 副作用 コード

Java 9、10でStringの+=にバグがあるということがStack OverFlowで報告されていました。 Why does array[idx++]+=”a” increase idx once in Java 8 but twice in Java 9 and 10? - Stack Overflow どういうバグかというと「s[i++] += i + ""」のようなコードが正しく動かな... 続きを読む

Androidプロジェクト内の未使用のリソースを削除するgradle pluginを作りました - Konifar's WIP

2018/05/13 このエントリーをはてなブックマークに追加 32 users Instapaper Pocket Tweet Facebook Share Evernote Clip Konifar's WIP リソース drawable

2018 - 05 - 13 Androidプロジェクト内の未使用のリソースを削除するgradle pluginを作りました Android プロジェクト内で使っていないdrawableやstyle、stringなどのリソースを削除するgradle pluginを作りました。 gradleコマンド一発で完了するので、 gradle-pullrequest-builder とCIのジョブを組み合わせ... 続きを読む

CakePHPのMigrationクラスを既存のクラス定義からジェネレートする - Qiita

2017/11/10 このエントリーをはてなブックマークに追加 11 users Instapaper Pocket Tweet Facebook Share Evernote Clip CakePHP Qiita 叩き台 マイグレーション 既存

既存のクラス定義からCakePHP3のマイグレーションを生成するジェネレータを作った。 プロパティが沢山あるクラスを作ってからマイグレーションクラスの叩き台を作ったりする時に使えると思う。 ジェネレータクラス <?php class MigratinoClassGenerator { public function generate ( string $className ) { $ref = n... 続きを読む

SwiftはどのようにJavaの検査例外を改善したか - Qiita

2017/03/10 このエントリーをはてなブックマークに追加 39 users Instapaper Pocket Tweet Facebook Share Evernote Clip Qiita Swift throws Java Scala

func foo () throws -> String { ... } // Java のような `throws` 節 僕は、 Java の検査例外のコンセプトは素晴らしいと考えていますが、世間ではあまり好かれていないようです。 C# や Scala, Kotlin などの後続言語では採用されず、僕の知る限り Java 以降、検査例外(的なもの)を採用したメジャー言語は Swift だけです。 ... 続きを読む

 
(1 - 25 / 71件)