「引数」を含む日記 RSS

はてなキーワード: 引数とは

2017-11-10

おっさんメソッド引数なしで長くなる理由

どうやら「メソッド細かくして~戻り値変数作って~引数渡しして~」という行為が面倒くさいというか短期記憶で処理しきれなくなるようだ

引数なし戻り値もほぼなしのメソッドが5行くらい並んでる(使うデータや出力されるデータは外部のどっかの広域変数に置いてある)、というのはその間に何か挟まれるとカタマリとしてわけがからなくなるから

過去おっさんメソッド/サブルーチンが長いのは現代プログラミングに触れてない世代だったからという解釈があったのだが、ぶっちゃけ加齢が主原因であった


40歳になったからわかったわ

2017-11-09

MVCモデルがよくわからない

正確には「じゃあコレをどう分けて書けばいいのか」がわからない

変数持つ場所とか引数受け渡しとかクラスの分け方とかそういうのがわからない

特に変数を持つ場所相手を知らなかったら相手に指示できないじゃないか

まとまってる本でも読むしかいか

2017-10-13

anond:20171013100220

puts警察だ! Rubyにおいて単純な文字列を特段厳密な制御なしに改行つきで標準出力に出したい場合printではなくputsを使え!

print msg + "\n" # back-slash
puts msg

ちなみに文字列nilだったり空文字列だったりする場合は改行が出ちゃうので注意だ!

あと文字列が改行で終わっている場合はその改行を流用してputsはなにもしないのでこれも注意だ!

それと引数文字列でも配列でもない場合はまずto_aryが試され(てそのあとto_sす)るのでものによってはprint+"\n"とは違う表示になるぞ!

うん、この例外挙動覚えて慎重に運用するくらいなら最初からprintでいいな!

2017-10-10

Ruby界隈の人

動的vs静的型言語みたい話題炎上案件があると、クラスメソッド引数は全部覚えているから型チェックいらないとか、くだらないスペルミスなんて自分はしない、そんなのするのは頭悪いとか、そんな発言ポンポン飛びだして、スキル高い低い以前にまとまった量のコードを書いたことあるのか疑わしいレベルの人が高濃度で混じってる。

2017-10-09

#addと#plus

arr = [1,2,3] というコレクション配列リスト)があったとして

arr.plus(4)は[1,2,3,4]というコレクションを作って返す

arr.add(4)は元のオブジェクトを[1,2,3,4]にする

うん、まあよろしい

が、これがIDE上になると「要素をいっこ追加したいけど書き方なんだったかな」という意図うろ覚えでplusメソッドを使ったりする(そして案の定増えない)

レシーバを変更するかどうかのコメントとかついて欲しい


あと、ネット上でアフィなのかなんなのか知らないけどこの手の解説書いてる人は関数が実行された結果どうなるのかまで書いて欲しい

上の例だと「引数を追加する」としか書いてないようなのが多い(追加した結果どうなるんだろうって気にならないのだろうか)

どうせコピペなんだろうけども

2017-09-14

引数が可変のメソッドを作りたい

引数がA,B,C,D,Eあるとして

A,Bだけ渡したら、内部でC,D,Eを自動的解釈するメソッドが作りたかった

 

これ、例えば

func hogeAll(A a, B b, C c, D d, E e) {

 全部入りメソッド

}

func hoge(A a, B b) {

 ここでhogeAllを呼べば解決する

}

 

んだけど、ABCDE全てに対して有/無のメソッドを全て定義すると果てしなくなる

これをスッキリ書ける言語ってのを知らない

 

方法があるとしたら引数Classを作ってしまう手がある

実際にこれはよくやられると思う

 

HikisuClass hikisu = HikisuClass.create(a,b)  // これで内部で自動的にc,d,eを解釈する

 

でもメソッド一個のためにクラスを作るのってクソ面倒だなと思う

もう一個方法があるとしたら、Classに値を入力したあとメソッドを実行する方法

 

Hoge hoge = new Hoge()

hoge.a = a

hoge.b = b

hoge.do()

 

しかしこれも長くなり煩雑だ、結局

hoge(a,b,null,null,null) みたいなことになりそう

 

ちなみに何でそういうことをしたいかと言えば、自然言語がそうなってるから

大抵の引数が省略されるし、省略されたりされなかったりする、非常に柔軟なんだ

もちろん受ける側の作り込みが大変になるが、ちゃんとリーダブルに作ろうとしたらそっちのほうが良いんじゃないかと思える

引数のoptional,require指定できればもっと良い

例えばコンソールで使うオプションとかって自由だよなあ

 

これってポリモーフィズムあたりの話か?

 

___

 

追記:

あ、DIコンテナみたいな話かな

でも結局煩雑だし使いたくない

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-07-27

https://anond.hatelabo.jp/20170727194329

たまにしか使わない上に興味ない言語だと、関数とか全く覚えてなくて毎回ググってるけどそんな困ってない

IDEあるとだいたいこんな関数名だったかなというのを打ってみたら似てる候補出てきてカーソル合わせたら説明引数出てくるから結構便利

2017-07-24

責任」という言葉が嫌い

使われ方が曖昧すぎるんだよ

 

責任(せきにん、英: responsibility/liability)とは、元々は何かに対して応答すること、応答する状態意味しており、ある人の行為が本人が自由に選べる状態であり、これから起きるであろうことあるいはすでに起きたこと の原因が行為者にあると考えられる場合に、そのある人は、その行為自体行為の結果に関して、法的な責任がある、または道徳的責任がある、とされる。 何かが起きた時、それに対して応答、対処する義務の事。

 

上記はwikipediaから

曖昧って言ったけど、言葉のものはそこまで曖昧じゃない

 

「Aに対してBする責任がある」と言うと

「Aに何らかの不備が生じた、あるいは生じる可能性があるときに、Bしなければならない」って意味

 

プログラムで考えると分かりやす

責任という言葉には引数が2つある。責任対象(Reason)と、行為(Action)だ。

 

だけど世間の「責任」の使われ方はどうだ?

Actionが抜け落ちている。酷いときにはReasonも抜け落ちている。

何をしてほしいのかまるでわからない、何に対して責任あるかも曖昧

ただただ避難するためだけに「責任」という言葉を使い

はいだって「結局何をしてほしいんですか?」と聞く羽目になる

 

そんなシーンは世の中至る所で見かける

言葉も満足に使えないバカがやたら「責任」を使いたがる

もっと別の言葉に置き換わってもらえないだろうか

ReasonActionを述べないと使えないような語に。

2017-06-21

[]6月20日

○朝食:なし(ヨーグルト致命的なまでに飽きた)

○昼食:助六(飽きない)

○夕食:ご飯、納豆(二つ)、減塩野菜たっぷり味噌汁フリーズドライ

○間食:アーモンド(五粒)、スライスチーズ(二枚)、野菜ジュースちょっと先月と今月で妙に間食癖が着いてしまったので自戒意味を込めてコーナーを追加、かつスナック菓子、みたいな不健康そうなものじゃなくてまだマシそうなものをチョイス)

調子

はややー。

仕事はそれなりにこなした。

昨日書いた通り、本来三日の仕事を二週間に薄めて仕事していて、僕含めて全員そんな感じのスケジュールなので、今まであまり自分が追ってこなかった分野の有識者に話を聞いて見たりして時間を使った。

ただ、その話を聞く部分はいいんだけど、メインのその三日で終わらせる部分がなんか少しだけ要領が悪くて、かみ合わなかった。

こんな日もそりゃあるんだけど、元は自分の書いた共通コードなのに引数トンチンカンものを渡す仕様にしてしまう、今までなんどもやってきたケースなのに何故か間違ってはないけど今まで違う上に将来性や運用を考えると微妙なやり方でやってしまう、などの間違いというか、ミスというか、なことが起きた。

どちらも、間違いを指摘されたらすぐわかったから、本当そういう日もある、いつも100点とれるわけじゃないって話なんだけど、二回続けてだったから、ちょっと心残りみたいなのがある。

それを気にしてどうこうって話題でもないんだけど、なんだか妙に「なんでこうできなかったかなあ」と悔しい感じだ。

ある意味自分の中で「俺はできる」みたいな自負があってそれがうまく回らなかったから悔しいのかなあ。

まあ、適度に頑張ろう。

Xbox360

デッドライジング

・ケース2

スナイパーライフル装備のカリートとのバトル。

ライフが有り余っているので、狙撃されながらスケボー近づいて、小型チェーンソーごり押しという脳筋プレイ

お話は、ブラッドさんが負傷してしまうも、博士を救出できた。

その後、スーパーマーケット薬局に薬を取りに行くも、スーパーマーケット店長サイコパスとバトル。

こちらも、スケボーで近づいて小型チェーンソーごり押し

お話は、イザベルを救助するもツンデレな感じで、逃げられてしまう。

・ケース3

救出した博士お話

ただ、フランクさんはあまり信頼されてないので、お話ほとんど聞けず。

・ケース4

なので、話を知ってそうなイザベル監視カメラで見つけて、会いに行く。

バイクに乗った彼女とバトル。

これも、小型チェーンソーごり押し

金的を食らいながらも、フランクさんの説得でお話を聞いてもらえるようになる。

どうやら、カリートがこの事件犯人らしく、ゾンビカリートメッセージ、みたいな話で、気になる展開。

さらに、イザベラカリートの妹であることが判明し、カリートを説得してくれることに。

・ケース5

が、説得は失敗。

イザベラは怪我をしてしまったので、おぶってセキュリティルームまで運ぶことに。

この、おぶるシステム他の救助者でもやりたいな、指示出すのイライラするし、フレンドリーファイヤが有りだから救助者運び大変なんだよね。

3DS

ポケとる

サファリを、前回からの追加分のピカチュウの顔違いを捕獲目当てで、10回ぐらいプレイ

が、影も形も出ず。

iPhone

○はねろコイキング

トレーナーランク38。

コイキングは、51代目。

コマスター

ログボが単発ガチャチケだったので、さっそく回す。

シザリガーサメハダーは出ず。

何気にマテリアルが6100も溜まっている。

4000はEXの悪ポケ追加にとっておきたいので、サメハダーは交換しちゃおうかなあ。

サザンドラは多頭飼い専門だから敷居が高いし。

はいえ、サメハダー運用できるポケモンまり持ってないし、微妙かなあ。

それこそ、サザンドラサメハダーは相性がいい気がするし、難しい。

2017-05-30

BASP21で受信したメール添付ファイル名などが文字化けする問題対処ポイント

今時BASP21 DLLフリー版)でメール受信してどうのこうので困ってる人が世の中にどのくらいいるかどうかわからないけど、今日嵌ってググってもまともな答えが出てこなくて途方にくれたのでポイントメモっておく。

問題と原因

BASP21 DLLのRcvMailメソッドPOP3サーバから受信してReadMailメソッドメールの内容を取得すると、一部のメール送信者や添付ファイル名が文字化けして正常に取得できない。これはBASP21 DLLのReadMailメソッド最近普通に送信されるUTF-8メール対応していないため。

対処

RcvMailで受信したファイルをReadMailで読み込む前に直接開き、Base64エンコードされたUTF-8文字があったらデコードしてJISに変換してBase64エンコードして保存する。その処理したファイルをReadMailで取り扱うようにする。全部BASP21の機能でできる。

落とし穴

BASP21のKconvメソッドの第1引数のinstrに文字列を渡せるのはUnicode UCS-2のみの場合だけらしく、UTF-8文字列を渡しても正常に動作しない。なので、一旦テンポラリファイルに書き出しKconvFileメソッド使用して変換を行う必要がある。っていまドキュメント眺めてたら文字列バイト配列にするByteArrayというメソッドがあるみたいなのでこれをを使えばできるかもしれない。けどもう正直いじりたくないよ…。

2017-04-24

隣の席の人が怖い

新しいプロジェクトで隣の席になった人の独り言が怖い。

プログラミングブツブツ言うのは全く気にならないんだけど、時折「死ねよこのコード書いたやつ」とか言い出す。

挙句には変数名をfuckにしたり引数にfuckを渡したりコマンドラインにfuckって書いたりしている。

変数のfuckは気付いたら普通になってるけどこんなにイライラしながら仕事してハゲないんだろうか?

2017-02-26

http://anond.hatelabo.jp/20170226153940

2017-01-18

(A)isBigThan(B) のような関数はなぜ書けないの?

後ろにまとめて引数を書くのが普通だと思うけど(というかそういう形しか知らない)、

別に先頭や真ん中に引数受け口を作っても良いのでは?

自分JavaPHPしかしらないけど、その2つはそういう実装はできない。

正直値の比較なんて、どっちが基数かで結果が変わってくるし、文章っぽいほうが可読性も上がると思うんだけど。。。

2016-12-03

老害プログラマだが。最近若いもんが書いたコードを読んだ。

例外ってあるじゃろ。tryしてる間にthrowされたのをcatchするアレじゃ。あれは、たしか有用な仕組みじゃ。何かの関数に失敗したとき本来の値のかわりに特定の値を返すのもダサいし、参照型の引数成功たか否かを返すのもダサい場面、というのは確実にある。そもそもプログラマ怠惰で忘れっぽい生き物なので、例外という仕組みがなければ、関数で失敗したことにすら気づかないかもしれない。

だがな。例外魔物じゃぞ。昔は、gotoというものがあってだな。好きなところに処理を飛ばすことができる。あまりに、いろんなところに飛ばせるので、邪悪だと言い出した奴がおって、今ではあまり使われなくなった。なぜgoto邪悪と呼ばれたかgotoというのは、順接、分岐、反復という、プログラムを組む上で最低限必要制御構造から逸脱した、どっかからどっかに飛んでいく、という行為が容易にでき、それを多用したコードはまともな人間には読めなくなるからであった。そして、例外は、まさにその「どっかからどっかに飛んでいく」を容易にするための仕組みなのじゃ。

例外は、順接、分岐、反復による基本的制御構造があった上で、あくま対処を要するアブノーマルな状況に使われるべきものであり、例外というのは、制御機構として使ってはいけない。値を返す目的例外を使ってはいけない。一体どこから来て、どこへ行くのか分からない、そんな、流れ星のような例外の使い方をしてはいけないのじゃ。例外を使うなと言うつもりはまったくない。じゃが、例外制御構造を壊しうるものだと認識し、例外悪用していないか、それによってコードが追えなくなることはないか、と、考えてから、使ってほしいのじゃ。

イベント悪用も見た。イベントは非常に有用な仕組みだし、GUIなんかだと、もはや必須とも言える。なので、イベントを使うことは有用なことだ。けれど、イベントは、いつどこで発生するか予想が付きづらいものが多く、また、スレッドなどを使って非同期でイベントが処理される場合(今時は、多くがそうだろう)は、マルチスレッドと同じく、リソース排他制御を行う必要があるかもしれない。複数の処理が同時に動くというのは、恐ろしいことなのじゃ。いつの間にか、変わってないと思ってた変数が途中で変わるやもしれない。「まー、滅多に起こらないし、ええじゃろ」って判断の上、何も対策しない、という手もあるが、ええじゃろで済むのか済まないのか検討するくらいは必要じゃわな。C# なんかだと、言語レベルイベント実装されておる。じゃからイベント必要ないじゃろと言いたくなるような場面で、イベントが使われていたコードを見た。

便利な仕組みがどんどん出てきて、新しいものがどんどん古くなる今のコンピュータ業界。新しいものを追いかけるのもいいが、基本は基本として、しっかり押さえて欲しいのじゃ。今更、アセンブラゲームを作れるようになる必要なぞ、微塵もないが、自分コードがどのように動くのか、興味をもってほしいのじゃ。わしのような新しいもの不勉強老害は、最近若いもの基本的なことを不勉強からこそ、居場所があるのじゃ。じゃが、わしももう長くない。若いもんは、新しい仕組みの表面だけでなく深い部分に触れて、学んで、わしら老害を追い出せるくらいになってほしい。わしからは以上じゃ。

2016-09-08

Excel特定文字を含むセルを調べる方法

事例

特定文字を含むとはいわゆる「あいまい検索」です。

例えば、

A列に住所があり、「東京都」という文字列があれば、B列に「◯」を、そうでなければ「×」を表示させたい

という場合を想定してみましょう。

普通想像するのは、IF関数の条件として「*」(アスタリスク)などのワイルドカードを使う方法ですが、これをIF関数で表すことはできません。

B1セルに「=IF(A1="*東京都*","○","×")」と入力し、下方向にオートフィルすればよいような気がしますが、これでは実際にはA1が「*東京都*」という文字列場合のみ結果が「◯」となります。「*」(アスタリスク)が文字として認識されてしまうためです。

方法

では対処方法の紹介です。

次のようにIF関数とCOUNTIF関数を組み合わせることで可能となります

B1セル

=IF(COUNTIF(A1,"*東京都*")>0,"○","×")

入力します。(※「>」は正確には半角です。ここでは匿名ダイアリー特性で全角としています。)

COUNTIF関数は、第1引数指定された範囲の中から、第2引数指定した条件に合致するセルの個数を数えてくれます。「*」(アスタリスク)はここではワイルドカード認識されるます

複数関数を組み合わせないといけなかったり、IF関数とCOUNTIF関数で「*」(アスタリスク)の扱いが異なっていたりとややこしいですが、覚えてしまえばこちらのものです。

これで普段エクセル作業も一気に効率が上がることでしょう!!

2016-09-06

手続き型で代入ができる言語では、参照透過性があり副作用がないサブルーチンって存在しないんだろうか。

int sum (int n) {
  int i = 0;
  int result = 0;
  while (i <= n) {
    result += i;
    i += 1;
  }
  return result;
}

例えばこんなサブルーチンなら、ローカル変数のiとresultに再代入はするけど、同じ引数で毎回同じ結果になるし、ローカル変数以外には影響を与えない。

条件はおそらくこのくらいでいいはず。

こういうのがコンパイラIDEで検知できれば便利そうなんだけど。

2016-09-02

情報系の学科に通っています

学問の徒として生きるのは完全に諦めてるし、大学もはや無駄と思ってるけど、無能でない俺ですら無理と思う道であってこんな補助金出してガバガバ教育してる日本金の使い方無駄すぎ……とは思う 

もっとちゃんとした就職予備校設置してほしいけどそういう変革は無理なんだろう。

そういう話じゃないのか。今回はそういう話ではないです。

パソコンのご本を読めるようになるのが難しい、という感じのお話。独学? が難しい。

パソコンのご本、あんまり知識がちゃんとしてない人は読めないようになっているっぽい。

後述するけど、わかりやすいように作られたスクショまみれの本とか。

全体的なビジョンがないわけ。実際の世界がそれで動いてるようなビジョンが。だから読めない。

僕は社会の役に立つことを直接学びたかったよ。社会がどういう風に動いてるかみたいな話をさア

そういうのがあれば、パソコンのご本を読めるようになるんだろうなという感覚がある。

実務の話!! 実際に「IT系のおしごと」というのがやってるような話で、特にコーディングに直接絡んでくるようなもの

技術実態みたいなやつ。そういうのは学校で教わらないんですよね。

優秀な人はバイトとかやって知ってるっぽいけど、それみんなバイトでやるの? みんなはやらんでしょ。

というかバイトみたいな形で社会参画しないと学べない知識だったら、それはそれでやばくないですか? という提起でもあります

はてな民の人IT系で働いてる人多そうだけど、そういうところ、そういうところなんですよね。

そういう知識があれば、大学図書館に置いてあるような「技術本」っぽいやつ? の扱い方がわかるんだろうなーと思う。

いや別にやってきたことは何も無駄にはなってないんだけど。ハードよりの話もしたり、基本的数学とか物理とか電子とか論理学とかシャノンの話とか。

でも、パチョコンは実学も以前に学問というか、実際に使えてナンボな部分が(いまこの想定してる話では)デカすぎるのに、

そんな環境的な、Linuxサバ建てしましょーねーみたいな話も三年後期になるまでやらなくて、そんなん人が立ててるの見たら一発で覚えられることだし、みたいな。

みたいな。

そう、なんというか本が読めないんですよね。これ人がいたら一発なのに……というようなことだらけで、絶対間違った道に来ちゃってるよという感じがする。

(焦ってるんじゃないのか?一冊だけをしっかりやれよ。と思ったりするし、言われそうだけど、それが一番の正解なのかな…やっぱり)

つーか本読みながらチンタラチンタラ比較するの嫌になるわけですよな。わかる。

スクショがいっぱい貼ってあったからといってわかりやすくなるわけではないし……。

てかスクショ貼ってあると古くなるとすぐ対応できなくなるから本当に困りますわよね、という話もあります

僕が何を期待しているのかって?それは実務のうちで難しいお話が出てこない、環境の話、という感じ。

プログラミングをやれと言われても、それIDEはなによ?っつー話ですわな。WindowsだとVisual Studioとかになるのかな。

Eclipseはよくわからない。Javaアプリ作るっていうのそんなに真剣にやったことないし……

っていうかそもそもプログラミングお仕事??がよくできる人たちはプログラミングで何をしているの?

アプリを作っているんですか?それだったらヴィジュアルモードのチェックが簡単なやつ必要だよね、という話で。

あるいは別にアプリなんか作ってないのかもしれないよな。とすると何かしらサーバーを使って捌くようなシステムサービスの細かい調節のお手伝いをしてたりするわけだ。

その具体的なトラフィックがどうだからどうのこうの、というお話をしたり、アクセスの仕方がどうの脆弱性がどうの、新しい技術がどうの、という話だと思うんですけど、

端的に言ってそういう話がぜんぜんわからない。そういう話がわかるとスンナリ進めるはずなんだけどな~と思いながら。

親の金大学行ってるのに、なんかもっとこううまくできるはずなのに……という感じでつらい。

僕は人の役に立つ仕事のおべんきょおがしたいんですよ。なのに図書館で借りられる本、自分が何を知らないか理解できないのかもよくわからない感じで……

日経Linuxとか読んでみて、去年のやつにプロセスとかスレッド説明あったけど、僕はまだOS基本的な話もマトモに理解できていないなので、

そういう人間には難しすぎる (というか抽象的すぎてかなりわからなかった) スケジューリングの話はされたので、プロセス対象なの?とか、そもそもCPUアセンブリ命令ADDとか?を実行しつつ、

OSがそのアセンブリ命令をセットにした実行単位を用意して、OSスケジューリングしてくれる、みたいな話なのかな……? と思った

(でも明らかにプロセススレッドがわからない人間には伝わらないような程度のフワフワ説明しかなくて、これ、誰向けだ?とか思ったけど、やっぱり身近に聞ける人間がいる人のための本なのかもしれないですなあ)。

そういうの、本とか、自分の足りない知識とか、おそらくその辺にあるんだろうな~と思いながら、でもバイトで働くにも微妙プログラミング知識必要で、「これまで何作ってきましたか?」と言われても、

そういう、あんまりしっかりしたものを作ったことないし、C言語gccで可変引数までやって、でもアセンブリがどう実行されるんですか、という話はよくわからない。

Javaも習って、まあそれっぽいお話はいっぱいされたんですけど、アプリ作るの難しかったし、GUIはクソだね、というか、手打ちでやったんですけど、こんなん絶対手打ちより良いやり方ありますやろと思いながらやっていた。

絶対手打ちより良いやり方あるはずだけど、僕は知らんし、知らない以上何が効率的に作れるのかもよくわからないし、わからないことにはできるだけ手を出さない方がいいな、と思う。

いや~なんつーかこういうことばっか書いてると「甘えんなカス氏ね」とかコメントされて、2000回くらいは殺されちゃうんですけど、それは甘んじるとして、でも何というか……みんなそうなんですかね。

年代で「めちゃくちゃプログラミングできちゃいます!(漠然)」みたいな人間いるけど、僕が例えばどういう本読んでどういう道筋を歩んだらそういうカンジになれるか、かなり見えなくてつらいし、

そもそもそういうのを職業にできるスキル高く磨けるような人って、いったいどういう生き方してきたらそうなるんだろう、と思っている。

これで情報系の研究室いって、なんとか乗り切って就活して、プログラムがんばって書きましょうー!というような職場に行ったら、

それはもう「学生じゃないんだから。もう社会人なんだから自分で調べて」となるんですよね。マンガとかでたくさん読みました。それは死ぬほどつらいでしょ。現に人死んでるじゃないですか。

結局周りに聞ける人間がいる環境ってなに? 今もいないし、大人になってもいないんでしょ? だからはてブで「プログラマーはやっぱ自分で本読んでスキルアップしなきゃ死ぬぞ!」みたいなやつがホッテントリになったりするわけでしょ?

それはつらい。ご本読んで理解できないの、というか読めてないの、ウチにあるだけで目が上滑りして「全体像がよくわからいからな~ しょうがないよな~~」と言いながらろくに読む気も起きなくて、

「でも本当に役に立つ本って開いた瞬間に読みやすいのでは?」みたいな信念がある。 これが原因なのかな。でも、この信念、少なくともこれまでめちゃくちゃ役に立ってきたものなんだよなあ……。

学生の今、自分が考えてて不安に感じてることが、「追いつけない」みたいな不安が、イマイチわかり切ってないし、

から具体的な質問として一言で言える話の羅列としてわかってないわけじゃなくて、もっと漠然とわからない。こういうこと感じてるの、僕だけじゃなくてパソコン知りてえ~~となって大学に来た人のうちけっこう多いような気がするんですよね。なんか生半可に甘えた環境から

----------------------

とりあえずこれ書いてたら少し気分落ち着いたので、要点をまとめると、

「本で勉強するのつらいよなあ~ そんなんじゃどんな分野行ってもつらいだろうなあ~」

ということです。

そういう有象無象の本をスパスパッと切って、「この辺のこの本読んどくとこういうことができるようになるだろうな~」というモデルがまだあんまりできてない。

そういうのができるようになるのかと思ってたらあんまり学校でも学べる感じじゃない。全体像とは……となっているけど、こういう悩み、自然解決したりしなかったりするんだろうな。

とりあえず、これは自分メモの今後の方針です。OSより下の階層、たとえばALUとメモリの組み合わせで、program counterを進めながら動いてるんだよーという感覚はあるので、

それがOSとどういう風につながってるのか、とか、100均で売ってる電卓、あのデジタル表示の部分がどういう仕組みで動いてるの、ということを考えたり、

インターネットプロトコルパソコンが具体的にどういうパケット送信しているんだろう、というような話を攻めて、これが全体像とやらが見えるようになる一助になるかはわからないけど、

できるところからできるところだけ勉強していきたいと思います。それが、僕にとって、よくわからない本をじっと読まなきゃいけない義務から抜け出した罰の引き受け方っぽいので。

2016-07-30

http://anond.hatelabo.jp/20160730161746

おお、やるじゃん!!!!!

すごい!

うそう、こういうこと!

こういうことが言いたいの!!!

俺の前の増田は、これを読む前の奴だからあんま気にしないでくれ!!!!!

こうすりゃ、一番最初増田で言ってた、引数の中で実装とかしなくてもええやろ?

ようやく、伝わって僕も嬉しいわ!

本気でJava知らんけど、言いたい事が伝わって良かったわ。

いやあ、よかったよかった。

http://anond.hatelabo.jp/20160730130830

class EventHoge implements View.OnClickListenerを作成して、それをそのまま引数に渡せってこと?

http://anond.hatelabo.jp/20160730125112

うーん?

いや、なんか、通じてないな。

もうちょいサンプル詳しく書くからサンプルのどこがわからいか言ってくれ。

EventHogeクラスクリックした時のイベント定義するクラス

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class EventHoge : View.OnClickListener {

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("サンプル");

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

MainHogeクラス(画面の初期化を行い、どのボタンにどのイベントを仕込むかを決めるクラス

    // Androidなにも知らんけど、元増田ボタンイベントを書く処理が書いてあるクラスのことが言いたい

    public class MainHoge {

        // そのメソッド

        public void Main() {

            //ボタン実装サンプル

            final Button button = new Button(this);

            button.setText("ダイアログの表示");

            button.setOnClickListener(new EventHoge());

        }

    }


こうやって、クラス分けて書けば、外とか中とか、全く関係なくなるじゃん。

元増田サンプルだと、メインの中でインターフェース実装したクラス実装を書いてるから、中とか外とかがあるんじゃないのか?

自分クラスとして定義して、そっちで実装すれば、メインは紐づけるだけでよくなって、仮引数?の中で実装しなくてもすむじゃん。

http://anond.hatelabo.jp/20160730090832

よくわからん

中が嫌なら外でかきゃいいじゃん。

javaAndroidもしらんから適当だけど。

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class Hoge : View.OnClickListener {

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("サンプル");

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

// メインスレッド的なところ

//ボタン実装サンプル

final Button button = new Button(this);

    button.setText("ダイアログの表示");

    button.setOnClickListener(new Hoge());

こう書けば、中で書かなくて良い気がするけど、駄目なの?

なんか、インターフェースから引数の中ってのが意味わからん

どう関係してるの?

http://anond.hatelabo.jp/20160730090832

なんで仮引数の中で実装しなきゃいけないの?

会社コーディング規約がそうだからじゃないの

俺はしないよ

汚く見えるから

android開発し始めたけど、Javaとかオブジェクト指向って難しくないか

//ボタン実装サンプル

final Button button = new Button(this);

    button.setText("ダイアログの表示");

    button.setOnClickListener(new View.OnClickListener() {

      public void onClick(View v) {

        AlertDialog.Builder dlg;

        dlg = new AlertDialog.Builder(MainActivity.this);

        dlg.setTitle("サンプル");

        dlg.setMessage("Hello, サンプル!");

        dlg.show();

      }

    });

↑なんで引数の中で実装しなきゃいけないの?引数interface指定されてるからなんだけど、

はっきり言って、こんな難しいこと専業で開発やってる人は普通なの?

2016-07-28

http://anond.hatelabo.jp/20160728113532

デフォルト引数が変わる、とかありがちでクソなこと自体が開発を停滞させるのはままあるよなあ…

からpython2はいつまで経ってもpython3に移行されへんのやろな。

僅かであっても言語仕様変えちゃアカンのや…

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん