原创 理解Python中的元類(metaclass) 理解Python中的元類(metaclass)

理解Python中的元類(metaclass) 這篇文章基本上是What are metaclasses in Python?最高贊答案的翻譯,同時我簡化了一點東西,加了點自己的demo。可以直接去看原文。 類也是對象 在理解元類之前,你需

原创 GraphQL學習:Github GraphQL API v4初探 GraphQL學習:Github GraphQL API v4初探

GraphQL學習:Github GraphQL API v4初探 查看GithubAPI的時候,發現github API升級成了V4,並且叫GraphQL API v4。不禁大喫一驚,這是個什麼東東。 什麼是GraphQL GraphQL

原创 Android劉海屏、水滴屏全面屏適配方案

我將適配方案整理後,封裝成了一個庫並上傳至github,可參考使用 項目地址: https://github.com/smarxpan/NotchScreenTool 市面上的屏幕尺寸和全面屏方案五花八門。 這裏我使用了小米的圖來說明:

原创 Android 9 請求網絡報異常:Cleartext HTTP traffic not permitted

因爲從Android9.0(API 28)開始,NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted(), 將return false。這表示Android默認將禁止

原创 Java7的try-with-resources聲明

看《Effective Java》第三版的時候,看到了其中建議將try-finally替換爲try-with-resources。這個語法糖還算有意思,特此成文。 用法辨析 Java庫中有很多資源需要手動關閉,比如InputStream、O

原创 kotlin語法之將函數作爲參數

一個setOnClickListener的錯誤 寫了個demo,點擊事件離奇的不生效,非常困擾。 開始實在是看不出有什麼問題,錯誤代碼如下: findViewById<Button>(R.id.btn).setOnClickListener

原创 Android源碼解析之MethodAndArgsCaller

如果你看過ZygoteInit.java的main方法可能會對這個類不陌生,在Android8.1之前,其main方法都是類似以下這樣: 以下代碼基於Android8.0 public static void main(String a

原创 思想的“盲點”

盲點,從生理的角度來說,是眼球視網膜上視神經進入眼球處的一個凹陷點。這裏是視神經和視網膜的連接點,沒有視覺細胞,所以這個點沒有視覺。 下圖爲盲點測試: 閉上左眼,用眼睛注視左側的圓形,並用餘光觀察右側方形。將眼睛慢慢向紙面靠近,在大約距紙

原创 GraphQL學習:Github GraphQL API v4初探

GraphQL學習:Github GraphQL API v4初探 查看GithubAPI的時候,發現github API升級成了V4,並且叫GraphQL API v4。不禁大吃一驚,這是個什麼東東。 什麼是GraphQL GraphQL

原创 理解Python的協程(Coroutine)

生成器(Generator) yield表達式的使用 生產者和消費者模型 yield from表達式 協程(Coroutine) @asyncio.coroutine async/await 總結 參考鏈接 由於GIL的

原创 理解Python中的元類(metaclass)

理解Python中的元類(metaclass) 這篇文章基本上是What are metaclasses in Python?最高贊答案的翻譯,同時我簡化了一點東西,加了點自己的demo。可以直接去看原文。 類也是對象 在理解元類之前,你需

原创 理解Python裝飾器

Python裝飾器 Python裝飾器看起來類似Java中的註解,然鵝和註解並不相同,不過同樣能夠實現面向切面編程。 一般的裝飾器 一個普通的裝飾器一般是這樣: import functools def log(func): @

原创 Python3 yield表達式的使用

方法中包含yied表達式後,Python會將其視作generator對象,不再是普通的方法。 下面舉例說明該表達式的具體使用: def test(): print("generator start") n = 0 w

原创 Ruby on Rails 安裝指南

介紹 Mac、linux、windows 安裝 rails 的方式 windows 安裝 rails 就別瞎折騰了,直接使用 RailsInstaller 一鍵安裝包 官網地址:http://railsinstaller.org/en 安裝

原创 Mac設置開機啓動

Mac設置開機啓動 本文針對命令行使用的開發工具或自己編寫的腳本設置開機啓動,圖形化界面的程序僅需要設置->用戶與羣組->登錄項中即可配置。 相比於Linux開機啓動設置的簡單方便--配置rc.local文件即可,mac設置開機啓動略顯