Enviar pesquisa
Carregar
Rubyのクラスとメソッド_エスキュービズム勉強会0530
•
0 gostou
•
726 visualizações
エンジニア勉強会 エスキュービズム
Seguir
5月30日に開催されたエスキュービズム社内勉強会での資料になります。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 24
Baixar agora
Baixar para ler offline
Recomendados
第23回目
第23回目
XMLProJ2014
Javascript3
Javascript3
Kiminari Homma
サーバサイドNodeの使い道
サーバサイドNodeの使い道
pospome
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
Nobuhiro Nakashima
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
エスキュービズム新技術発表資料
エスキュービズム新技術発表資料
エンジニア勉強会 エスキュービズム
Recomendados
第23回目
第23回目
XMLProJ2014
Javascript3
Javascript3
Kiminari Homma
サーバサイドNodeの使い道
サーバサイドNodeの使い道
pospome
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
Node.js基礎の基礎 - Miyazaki.js vol.2
Node.js基礎の基礎 - Miyazaki.js vol.2
Nobuhiro Nakashima
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
エスキュービズム新技術発表資料
エスキュービズム新技術発表資料
エンジニア勉強会 エスキュービズム
小売りにおけるAIの可能性
小売りにおけるAIの可能性
エンジニア勉強会 エスキュービズム
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
エンジニア勉強会 エスキュービズム
はじめての品質
はじめての品質
エンジニア勉強会 エスキュービズム
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
エンジニア勉強会 エスキュービズム
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
エンジニア勉強会 エスキュービズム
Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
エンジニア勉強会 エスキュービズム
ほんのりTDD
ほんのりTDD
エンジニア勉強会 エスキュービズム
IoTで何をやったか
IoTで何をやったか
エンジニア勉強会 エスキュービズム
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
エンジニア勉強会 エスキュービズム
Dockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについて
エンジニア勉強会 エスキュービズム
VRのコンテンツ
VRのコンテンツ
エンジニア勉強会 エスキュービズム
Azureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについて
エンジニア勉強会 エスキュービズム
レイアウトについて
レイアウトについて
エンジニア勉強会 エスキュービズム
アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)
エンジニア勉強会 エスキュービズム
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
IoTのIを考えてみる話
IoTのIを考えてみる話
エンジニア勉強会 エスキュービズム
AzureのIaaSとかの話
AzureのIaaSとかの話
エンジニア勉強会 エスキュービズム
【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ
エンジニア勉強会 エスキュービズム
【エンジニア勉強会】PMやってみた
【エンジニア勉強会】PMやってみた
エンジニア勉強会 エスキュービズム
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Mais conteúdo relacionado
Mais de エンジニア勉強会 エスキュービズム
小売りにおけるAIの可能性
小売りにおけるAIの可能性
エンジニア勉強会 エスキュービズム
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
エンジニア勉強会 エスキュービズム
はじめての品質
はじめての品質
エンジニア勉強会 エスキュービズム
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
エンジニア勉強会 エスキュービズム
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
エンジニア勉強会 エスキュービズム
Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
エンジニア勉強会 エスキュービズム
ほんのりTDD
ほんのりTDD
エンジニア勉強会 エスキュービズム
IoTで何をやったか
IoTで何をやったか
エンジニア勉強会 エスキュービズム
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
エンジニア勉強会 エスキュービズム
Dockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについて
エンジニア勉強会 エスキュービズム
VRのコンテンツ
VRのコンテンツ
エンジニア勉強会 エスキュービズム
Azureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについて
エンジニア勉強会 エスキュービズム
レイアウトについて
レイアウトについて
エンジニア勉強会 エスキュービズム
アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)
エンジニア勉強会 エスキュービズム
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
IoTのIを考えてみる話
IoTのIを考えてみる話
エンジニア勉強会 エスキュービズム
AzureのIaaSとかの話
AzureのIaaSとかの話
エンジニア勉強会 エスキュービズム
【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ
エンジニア勉強会 エスキュービズム
【エンジニア勉強会】PMやってみた
【エンジニア勉強会】PMやってみた
エンジニア勉強会 エスキュービズム
Mais de エンジニア勉強会 エスキュービズム
(20)
小売りにおけるAIの可能性
小売りにおけるAIの可能性
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
はじめての品質
はじめての品質
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
ほんのりTDD
ほんのりTDD
IoTで何をやったか
IoTで何をやったか
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
Dockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについて
VRのコンテンツ
VRのコンテンツ
Azureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについて
レイアウトについて
レイアウトについて
アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
IoTのIを考えてみる話
IoTのIを考えてみる話
AzureのIaaSとかの話
AzureのIaaSとかの話
【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】PMやってみた
【エンジニア勉強会】PMやってみた
Último
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Último
(10)
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Rubyのクラスとメソッド_エスキュービズム勉強会0530
1.
Rubyのクラスとメソッド
2.
目次 クラス定義 メソッド探索 Mix-in 特異クラス クラスメソッド
3.
クラス定義
4.
Rubyのオブジェクト指向 Rubyはオブジェクト指向型言語 クラス、継承、モジュール等を使用出来る Rubyは全てがオブジェクトで出来ている 例:クラス = Classクラスのオブジェクト
5.
Classもオブジェクト クラスもオブジェクトなので、変数へ格納出来る class Foo end a =
Foo # Fooクラスを変数へ格納 a.new(1) # Foo.newと同じように使用出来る
6.
依存クラスの参照 インスタンスから生成元のクラスオブジェクトを参 照出来る クラスオブジェクトから親クラスを参照出来る class Foo end foo1 =
Foo.new() # Fooのインスタンスを作成 foo2 = foo1.class.new() # foo1.classからインスタンスを作成 puts foo1.class == foo2.class #=> true class FooExt < Foo end puts FooExt.superclass == Foo #=> true
7.
メソッド探索
8.
メソッド Rubyのメソッドは大きく2つ インスタンスメソッド クラスメソッド
9.
インスタンスメソッド インスタンスをレシーバとするメソッド instance_methodsメソッドから一覧を取得可能 スーパークラスで定義されたインスタンスメソッド も使用可能
10.
Rubyの継承チェーン ancestorsメソッドから継承チェーンを確認出来る BasicObjectクラスは全てのクラスのスーパークラス ほとんどのクラスはObjectクラス、Kernelモジュー ルを継承 String Comparable Object
Kernel BasicObject Integer Numeric Comparable Object Kenerl BasicObject Objectクラス・Kernelモジュール・Basic Objectクラスの メソッドは、ほとんどのクラスで使用可能。
11.
メソッド探索 インスタンスは、呼び出されたメソッドが見つかるまで、 継承元クラスのインスタンスメソッドを探す。 最終的に見つからない場合、 BasicObject#method_missingメソッドを呼び出す。 Foo Object Kernel BasicObjec t Foo インスタンス
12.
Mix-InMix-InMix-InMix-In
13.
Mix-in クラスにモジュールをincludeする事 Rubyの継承は単一継承のみ許されている 複数の機能を継承したい時にMix-inを使用する。
14.
モジュール 定義はクラスコードとほぼ同じで、class文の代わり にmodule文を使う クラスとの相違点 単独ではインスタンス化できない クラスや他のモジュールにincludeできる 複数のクラスで適用したい機能をモジュールで定義 する
15.
モジュールの継承チェーン モジュールをincludeした場合、オブジェクトの継承 チェーンに無名クラスとして追加される。 この無名クラスはsuperclassメソッドからは参照出 来ない。 FooExt Bar Foo class
Foo end module Bar end class FooExt < Foo include Bar end puts FooExt.superclass #=> Foo FooExt.superclass
16.
特異クラス
17.
特異クラス 特定のインスタンスからのみ参照される特別なクラ ス foo1 = Foo.new def
foo1.hoge # fooの特異クラスにhogeメソッドを定義 puts “hoge” end foo2 = Foo.new foo1.hoge #=> “hoge” foo2.hoge #=> NoMethodError
18.
特異クラスの継承チェーン メソッドを定義した際、元のクラスを継承した特異 クラスが生成される。 インスタンスは特異クラスのインスタンスのように なる。 classメソッドからは特異クラスは参照出来ず、元の クラスが返される。 #foo1 Foo foo2foo1
19.
再オープン 再オープン式 foo1 = Foo.new class
<< foo1 # foo1を再オープン def hoge end end 再オープン式を使って特異クラスを定義する事も出来る
20.
extendメソッド 再オープンを使用して特異クラスへモジュールを Mix-inする事が出来る。 特異クラスへのMix-inはよく使用する為、同じ動作をするextendメ ソッドが用意されている。 foo1 = Foo.new(1) class
<< foo1 include Bar end foo1 = Foo.new(1) foo1.extend(Bar)
21.
クラスメソッド
22.
Classクラス Ruby内でクラスを表すクラス クラスはClassクラスのインスタンス class Foo end Foo.class #=>
Class Foo = Class.new Foo.class #=> Class
23.
クラスメソッド クラスオブジェクトをレシーバとするメソッド クラスの特異クラスのメソッドとして定義 Foo = Class.new def
Foo.hoge end class Foo def self.hoge end end foo1 = Foo.new def foo1.hoge end class << foo1 def hoge end end クラスメソッドの定義例: 特異クラスの定義例:
24.
まとめ Rubyはメソッドチェーンが大事。 オブジェクトモデルの解釈は多くある 他の解説も読んでみると理解が増す 参考・出典:Ruby 公式資格教科書、
Baixar agora