プログラミング言語比較

プログラミング

一覧

 状態:-  閲覧数:1,052  投稿日:2018-04-22  更新日:2018-05-08  

内容


クラス定義
継承
関数定義
変数定義
数字開始
if文
文字の連結
正規表現
Morris-Pratt algorithm border

クラス定義

 閲覧数:346 投稿日:2018-04-22 更新日:2018-04-22 

Java


classキーワード使用
public class MainActivity {
}

Kotlin


classキーワード使用
class MainActivity {
}


継承

 閲覧数:354 投稿日:2018-04-22 更新日:2018-04-22 

Java


extendsキーワード使用
public class MainActivity extends AppCompatActivity {
}

Kotlin


コロン使用
class MainActivity : AppCompatActivity() {
}

Go


存在しない

関数定義

 閲覧数:353 投稿日:2018-04-23 更新日:2018-04-23 

JavaScript


functionキーワード使用

Java


関数、メソッドを宣言する専用キーワードは存在しない

Kotlin


funキーワード使用
override fun onCreate(savedInstanceState: Bundle?) {
}

C#


関数、メソッドを宣言する専用キーワードは存在しない

変数定義

 閲覧数:342 投稿日:2018-04-24 更新日:2018-05-03 

Java


型名を変数名の前へ配置
String greeting = "こんにちは"

Kotlin


型名を変数名の後ろへ配置
val greeting: String = "こんにちは"
・自動的に代入される型を推論するため、下記でも可
val greeting = "こんにちは"

Go


型名を変数名の後ろへ配置
var 変数名 型名
var greeting string


数字開始

 閲覧数:364 投稿日:2018-04-25 更新日:2018-04-25 

PHP


数字開始「変数」
・×
$4k_shooting
・◯
$_4k_shooting
有効な変数名は、文字またはアンダースコアから始まる

MySQL


数字開始「カラム名」
内容に応じて異なる

数字以外も含む場合
・◯
4k_shooting
SELECT 4k_shooting FROM `status`

数字のみで構成されている場合
・条件付きで◯
※引用符で囲む必要がある
`4`
SELECT `4` FROM `status`


if文

 閲覧数:380 投稿日:2018-04-26 更新日:2018-04-26 

GO


条件部に丸括弧は不要
if a < 5 {}   // OK
if (a < 5) {} // NGではないが冗長


文字の連結

 閲覧数:361 投稿日:2018-04-27 更新日:2018-05-08 

Kotlin


String型の文字にInt型の値や変数を連結する場合
・$を使用して連結する
val sheepText = "ひつじが$1匹"
val sheepText = "ひつじが$sheepCount 匹"

あるクラスの値を連結する場合
・${}を使用して連結する
val sheepText = "ひつじが${sheep.count}匹"


正規表現

 閲覧数:382 投稿日:2018-04-28 更新日:2018-05-08 

Perl


言語そのものに正規表現が備わっているため直接プログラムに正規表現を書く

JavaScript


言語そのものに正規表現が備わっているため直接プログラムに正規表現を書く

PHP


「正規表現パターン文字列」を関数へ渡して処理する

Morris-Pratt algorithm border

 閲覧数:374 投稿日:2018-05-08 更新日:2018-05-08 

JavaScript


var S = 'aabaabaaa';
var A = [];
A[0] = -1;
var j = -1;
for (var i = 0; i < S.length; i++) {
 while (j >= 0 && S[i] != S[j]) j = A[j];
 j++;
 A[i+1] = j;
}
console.log(A); //(10) [-1, 0, 1, 0, 1, 2, 3, 4, 5, 2]


ECMASCript2015


const S = 'aabaabaaa';
const A = [];
A[0] = -1;
let j = -1;
for (let i = 0; i < S.length; i++) {
 while (j >= 0 && S[i] != S[j]) j = A[j];
 j++;
 A[i+1] = j;
}
console.log(A); //(10) [-1, 0, 1, 0, 1, 2, 3, 4, 5, 2]


C++


最初に0を格納
・10個指定
#include <iostream>
using namespace std;
#include <vector>
#include <string>

int main() {
   //vector<int> A = {1, 2, 3, 4, 5};
    vector<int> A = {0,0,0,0,0,0,0,0,0,0};

   //'aabaabaaa'
   std::vector<string> S = {"a","a","b","a","a","b","a","a","a"};

   // ここから
   A[0] = -1;
   int j = -1;
   for (int i = 0; i < S.size(); i++) {
         while (j >= 0 && S[i] != S[j]) j = A[j];
         j++;
         A[i+1] = j;
   }
   // ここまで
   
   for (int i = 0; i < (int)A.size(); i++) {
       std::cout << A[i] << std::endl;
   }

   return 0;
}

//-1
//0
//1
//0
//1
//2
//3
//4
//5
//2


・まとめて指定
#include <iostream>
using namespace std;
#include <vector>
#include <string>

int main() {
   //vector<int> A = {1, 2, 3, 4, 5};
   int A[10]={0};;

   //'aabaabaaa'
   std::vector<string> S = {"a","a","b","a","a","b","a","a","a"};

   // ここから
   A[0] = -1;
   int j = -1;
   for (int i = 0; i < S.size(); i++) {
         while (j >= 0 && S[i] != S[j]) j = A[j];
         j++;
         A[i+1] = j;
   }
   // ここまで
   
   for (int i = 0; i < (int)sizeof(A)/sizeof(*A); i++) {
       std::cout << A[i] << std::endl;
   }

   return 0;
}

//-1
//0
//1
//0
//1
//2
//3
//4
//5
//2


0を格納する必要はない

#include <iostream>
using namespace std;
#include <vector>
#include <string>

int main() {
   //vector<int> A = {1, 2, 3, 4, 5};
   int A[10];

   //'aabaabaaa'
   std::vector<string> S = {"a","a","b","a","a","b","a","a","a"};

   // ここから
   A[0] = -1;
   int j = -1;
   for (int i = 0; i < S.size(); i++) {
         while (j >= 0 && S[i] != S[j]) j = A[j];
         j++;
         A[i+1] = j;
   }
   // ここまで
   
   for (int i = 0; i < (int)sizeof(A)/sizeof(*A); i++) {
       std::cout << A[i] << std::endl;
   }

   return 0;
}

//-1
//0
//1
//0
//1
//2
//3
//4
//5
//2


動的配列
#include <iostream>
using namespace std;
#include <vector>
#include <string>

int main() {
   //vector<int> A = {1, 2, 3, 4, 5};
   vector<int> A(10);

   //'aabaabaaa'
   std::vector<string> S = {"a","a","b","a","a","b","a","a","a"};

   // ここから
   A[0] = -1;
   int j = -1;
   for (int i = 0; i < S.size(); i++) {
         while (j >= 0 && S[i] != S[j]) j = A[j];
         j++;
         A[i+1] = j;
   }
   // ここまで
   
   for (int i = 0; i < (int)A.size(); i++) {
       std::cout << A[i] << std::endl;
   }

   return 0;
}

//-1
//0
//1
//0
//1
//2
//3
//4
//5
//2


C++11


#include <iostream>
using namespace std;
#include <vector>
#include <string>
#include <array>

int main() {
   //vector<int> A = {1, 2, 3, 4, 5};
     // vector<int> A = {0,0 ,0 ,0 ,0,0,0,0,0,0};
    std::array<int, 10> A;

   //'aabaabaaa'
   std::vector<string> S = {"a","a","b","a","a","b","a","a","a"};

   // ここから
   A[0] = -1;
   int j = -1;
   for (int i = 0; i < S.size(); i++) {
         while (j >= 0 && S[i] != S[j]) j = A[j];
         j++;
         A[i+1] = j;
   }
   // ここまで
   
   for (int i = 0; i < (int)A.size(); i++) {
       std::cout << A[i] << std::endl;
   }

   return 0;
}

//-1
//0
//1
//0
//1
//2
//3
//4
//5
//2



プリミティブ

Headless Browsers

コメント投稿(ログインが必要)