HHKB Professional HYBRIDを買って半年ちょっと使っている話。

イメージ
昨年の9月に購入しましたHHKB。 一時期英語配列のキーボードを使っていましたが、今回は日本語配列をチョイス。 PFU キーボード HHKB Professional HYBRID 日本語配列/墨 良かったところ タイピング時の打鍵感、音が心地良い     これがかなりデカい。直近の生成AI周りの発展のおかげで直接タイピングしてコードを書くことは以前に比べるとかなり減ったけど、それでも全然使うのでここのストレスがないことは大きい。 ただ、これも人による部分が大きいと思う部分なので事前に触れる箇所があれば触った方が良い。 HHKBの公式サイトにタッチ&トライスポット というページがあるので実際の打鍵感や音を確認したい人はそこで検索してのをおすすめします。 僕の場合、当初は HHKB Studio を買おうと思って秋葉原の遊舎工房というお店で触らせてもらいましたが、正直打鍵感と音の感じが好みではなかったのでボツ。 横に置いてあったこっちのキーボードを触ってみたらかなりしっくりきた。他にも色んなキーボード(同モデルの静音タイプとか)が置いてあったけど、長いこと使うなら手に馴染むモデルが良いと思ってそのまま購入という流れ。 あと、個人的には気にならなかったけど、色んなところのレビューを見る感じ音に敏感な人と同居してるとか赤ちゃんがいる家庭とかだと少し苦情が出るかも、なくらいの音が出るのでそこは注意すべき。多分そういった人向けに静音モデルがあると思う。 Bluetooth接続できるデバイスの数が多め これもかなりポイント。仕事用のPCにもプライベート使っているPCも両方ともクラムシェルモード(PCを折りたたんだまま外部ディスプレイに接続して使用するモード)で使っているので、仕事を始めるタイミングや終えて切り替えるタイミングで物理ケーブルの切り替えに手間が掛かるのが嫌だった。 HHKBを使用する前に使用していたMagic Keyboardなんかは複数デバイスに対応していなかったため、いけてないなと思いつつ使っていた。 今はコマンドで接続先を切り替えるだけなのでそのストレスは大きく減った。お高いキーボードであれば標準的に乗っている機能なんだろうけど、なんでMagic Keyboardはこの機能がないんだろう・・・ 良くないところ 割と頻繁な頻度で単三電池...

LeetCodeのEasy問題を解いて勉強するSwift Invert Binary Tree編



LeetCodeのEasy問題を解いて勉強するSwift Invert Binary Tree編

新しくSwiftを触ることになりそうなので

ひとまずコードを書いてみることにする。
LeetCodeのEasy問題は比較的解き方を知っている(はず)なので、Python3で書いていた部分をどのような書き方に直すのかを色々思い出しつつ試行錯誤していく。

書いている人のレベル感

Swiftビギナー。基本的な文法すらあやふやなので始めて数日レベルと言っても過言ではない。

LeetCode

お題が与えられ、その内容に合わせてコードを書き、提出して合ってるかどうかを確認できる。
問題はソフトウェアエンジニアのコーディング面接で出されたお題をそのまま引用していることがほとんど。

前回
LeetCodeのEasy問題を解いて勉強するSwift Binary Search編

Invert Binary Tree

Invert Binary Tree
与えられたバイナリツリーをInvert(反転)させてrootを返す関数を書く。

/**
* Definition for a binary tree node.
* public class TreeNode {
*     public var val: Int
*     public var left: TreeNode?
*     public var right: TreeNode?
*     public init() { self.val = 0; self.left = nil; self.right = nil; }
*     public init(_ val: Int) { self.val = val; self.left = nil; self.right = nil; }
*     public init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
*         self.val = val
*         self.left = left
*         self.right = right
*     }
* }
*/
class Solution {
   func invertTree(_ root: TreeNode?) -> TreeNode? {
       guard let root = root else { return nil }
       (root.left,root.right) = (root.right,root.left)
       _ = invertTree(root.left)
       _ = invertTree(root.right)

       return root
       }
}

_(アンダースコア)

ここで_について。
Swiftでは代入する値に対して返り値を使用しない場合に宣言をしなくても_を使用することが可能。
再帰的に呼び出している

_ = invertTree(root.left)
_ = invertTree(root.right)

の箇所は入れ替える処理を実際には戻り値を使用していないが、こういった書き方をすることも可能。

ただ、実は

invertTree(root.left)
invertTree(root.right)

これでもテストケースは通るし問題ないといえば問題ない。というかこっちの書き方の方が好き

学べたこと

Swiftでの_の使い方

コメント

このブログの人気の投稿

【OSLog】How to log a Swift project

Principles of UX/UI Designでこんなことを学んでいるよ 第一週 User-centerd design①

Swiftで使うQueueのテンプレート