信之(8)3[イベントレポート]Stringの文字の数え方を完全理解するiOSDCの前夜祭でフェンリルの廣部さんによる「SwiftのStringの文字の数え方を完全理解する」というセッションを聞きました。SwiftはUnicodeの扱いに非常に長けた言語であり、絵文字を含む文字列でも正しい文字数を計算してくれます。その反面、Unicodeの複雑さに引きずられてしまい、直感的な操作ができない時もあります。書いても3番目の文字を取得することはできません。そんな複雑なところのあるSwiftの文字列処理ですが、複雑なものを受け入れてきちんと理解するのはそこまで難しいものではありません。このトークでは、Unicodeとの関係を意識しながら、Swiftの文字数の扱い方とその裏にある考え方を解説します。感想SwiftのStringはUnicodeの扱いに長けた言語である反面、Unicodeの複雑さに引きずられてしまっている部分があります。このセッションを聞いてStringの文字の数え方の裏側について少し理解をすることができました。protocolにconformしています。Arrayの方は添字へのアクセスをIntで行い要素を取り出すことができるのに対してStringはそれができません。添字にはString.startIndexを渡す必要があります。要素の型はCharacter型です。getではなくsetを行う場合はArrayにはIntの添字を渡して値を代入すれば良いですが、Stringの場合は要素にアクセスして変更するためにはIntを渡せずString.Indexを渡す必要があります。一つのCharactorの内部表現がそれぞれ異なるため、Intを使った場合取得と入れ替えの計算量がO(1)にならず、O(n)となるためIntで添字アクセスできず、MutableCollectionに準拠できないという内容でした。それらを行うためIntではなく独自に定義した型を使って計算量O(1)を満たしているということでした。String型の添字アクセスを行う時にString.Indexという型のオブジェクトを渡しているのに気づいてはいたもののそういうものとして扱っていたのでこのセッションはとても楽しいものに感じました。Hirobe(@taka1068)さんさん、本当にありがとうございました。86,122Swiftが好きです。Swiftコンパイラに興味があります。すごく難しいですが先を走っている方々のアウトプットを頼りに入門し始めました。趣味はPCゲームと自作キーボードです。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。濱田孝治421re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。泰雨122皆さん、こんにちは。コンサル部のテウです。2020年もあっという間に2ヶ月が経ちました。今年こそ機械学習に入門しようぜ!!って決心された方もいらっしゃると思います。入門できる方法をご紹介させて頂きたいと思います。本記事の手順通り、ランチタイム等の時間を活かして、手軽に入門してみてください。濱田孝治421re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。夏目祐樹414こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐296ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介257SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。