Les applications Web font partie de la vie de nos jours. le Aller language, de Google, est un langage utile pour créer des applications Web. Je vais vous montrer comment commencer à utiliser Go sur un Mac..
Le moyen le plus simple d’installer le Aller le langage de programmation est par Homebrew. Si vous n'avez pas installé Homebrew pourtant, le tutoriel Homebrew Demystified: le gestionnaire de paquets ultime d'OS X va vous montrer comment.
Dans un terminal, tapez:
brasser installer allerTrouver le bon installer
Pour trouver l'emplacement du aller répertoire d'installation, tapez cette commande dans votre programme de terminal:
ls -la 'qui va'
Vous devriez obtenir ce résultat:
lrwxr-xr-x 1 raguay wheel 25 mai 14 15:11 / usr / local / bin / go ->… /Cellar/go/1.2.2/bin/go
Cela montre que l'installation principale de Aller est /usr/local/Cellar/go/1.2.2
. Vous devez configurer la variable d'environnement GOROOT être le libexec répertoire de ce répertoire.
Dans le répertoire de base, créez le répertoire aller. le aller langue stockera tous les paquets téléchargés ici. Ajouter à votre .bashrc fichier et / ou .zshrc déposer cette ligne:
export GOPATH = "/ Utilisateurs // go "export GOROOT =" / / libexec "
Si vous utilisez du poisson, ajoutez ceci à votre config.fish fichier:
set -xg GOPATH "/ Utilisateurs // va "set -xg GOROOT" / / libexec "
Pour tester, tapez ce qui suit dans un terminal:
aller version
Il devrait imprimer la version, de aller, qui est installé. Sur mon système en ce moment, cela montre aller version go1.2.2 darwin / amd64
.
Pour vérifier les nouvelles versions, laissez HomeBrew comprendre cela. Sur la ligne de commande, tapez:
mise à jour de la bière mise à niveau de la bière
le mettre à jour La commande obtiendra une liste des programmes mis à jour. le améliorer commande effectue la mise à niveau réelle. De cette façon, vous n’avez jamais à chercher les différents sites Web pour trouver des mises à jour..
Maintenant que Aller est sur le système, vous devez configurer l'éditeur. j'utilise Sublime Text 3, Vim, et Emacs beaucoup. Par conséquent, je dois mettre mes éditeurs au courant avec Aller.
Pour Texte sublime, c'est facile. Installez le Gestionnaire de packages pour Sublime Text. Cela permet une installation facile des paquets. Le paquet que vous voulez installer est goSublime. goSublime vous donne Aller mise en évidence de la syntaxe de la langue et un Aller système de construction.
À installer Aller coloration syntaxique pour Emacs, installer les routines eLisp trouvées dans $ GOROOT / misc / emacs dans votre dossier emacs elisp. Pour Emacs pour charger les nouveaux fichiers, vous ajoutez cette ligne au .Emacs fichier dans le dossier de départ:
(nécessite 'go-mode-load)
Le soutien à Vim prend plus de travail. Dans un terminal, lancez ces frapper lignes de commande:
mkdir -p $ HOME / .vim / ftdetect mkdir -p $ HOME / .vim / syntaxe mkdir -p $ HOME / .vim / autoload / go ln -s $ GOROOT / misc / vim / ftdetect / gofiletype.vim $ HOME / .vim / ftdetect / ln -s $ GOROOT / misc / vim / syntaxe / go.vim $ HOME / .vim / syntaxe ln -s $ GOROOT / misc / vim / autoload / go / complete.vim $ HOME / .vim / autoload / go echo "syntaxe sur" >> $ HOME / .vimrc
La dernière ligne n’est nécessaire que si vous n’avez pas déjà syntaxe sur dans ton .vimrc.
Traditionnellement, les bibliothèques sont les bases de la modularisation du code en vue de sa réutilisation. Dans aller, les bibliothèques sont des paquets. La langue utilisée est livrée avec de nombreux paquets intégrés. Vous pouvez les parcourir sur la page des packages. Il existe également de nombreux packages et projets tiers.
Pour le Titre Case Server, Je vais utiliser le package tiers web.go. Il s’agit d’un simple framework de serveur Web qui simplifie la création d’applications Web dans Aller. Pour charger ce paquet sur votre système, tapez ce qui suit:
allez installer github.com/hoisie/web
le installer commande prend un argument qui est une adresse Web, sans le http: //, pour un package à télécharger. Il est placé dans le répertoire $ GOPATH créé précédemment.
Le cas du titre est l’une des choses les plus difficiles. Certaines personnes aiment certains mots toujours minuscules. D'autres pensent que les mots devraient être tous des cas de titre. Par conséquent, pour le faire correctement (ce que la plupart des routines de paquet ne font pas), vous devez vérifier chaque mot par rapport à deux dictionnaires de mots pour que tout soit correct. C'est un excellent projet pour débutant dans un nouveau langage de programmation.
// // Package: Main // // Description: Il s'agit du package principal du serveur goTitleServer. // Il s'agit d'un cas de titre basé sur une technologie Web simple // serveur de texte. // paquet principal
le // Le symbole indique un commentaire. Le compilateur ignore tout ce qui suit dans la ligne. J'aime tout commenter. Des années plus tard, lorsque vous lisez le code, les commentaires vous aident à vous rappeler le fonctionnement du programme..
La ligne après les commentaires est la déclaration du package. Chaque fichier qui Aller use doit faire partie d'un paquet. Chaque programme a un seul principale paquet qui doit avoir le principale() une fonction. Cela indique au compilateur par où commencer à exécuter le programme.
// // Importe les bibliothèques dont nous avons besoin pour le serveur. // import ("github.com/hoisie/web" "os" "chaînes")
Pour utiliser des packages, vous devez importation leur. Tous les paquets utilisés doivent être dans cette déclaration. J'inclus les deux paquets de base de os pour les fonctions du système d'exploitation, et des cordes pour manipuler des chaînes. le github.com/hoisie/web charge le web.go paquet pour faire le serveur web.
// // Fonction: homePage // // Description: cette fonction servira de serveur à la page d'accueil pour la saisie de la chaîne // à convertir. // func homePage () string return 'Titre Case Server Titre Case Server
'
Cette fonction crée la page d'accueil. C’est ce que le serveur donne à un navigateur Web qui demande la page d’accueil du site Web. le func commande est une déclaration de fonction. le homePage est le nom de la fonction. le () indique au compilateur que cette fonction ne prend aucune entrée. le chaîne après que la parenthèse indique au compilateur que la fonction retournera une chaîne.
Tout à l'intérieur du est le code de la fonction. Cette fonction est simple: revenir la chaîne entre guillemets à l'appelant de la fonction. Dans aller, vous pouvez citer des chaînes avec "", ", et ". J'ai utilisé le dernier ici pour avoir une chaîne de plusieurs lignes qui n'est pas traitée du tout. Vous appelez cela une chaîne littérale.
En utilisant la méthode de citation littérale, je peux mettre en page la page Web comme je le ferais normalement. Rien à l'intérieur des graduations n'est traité par le compilateur. Il est copié directement dans le programme et le programme le renvoie au navigateur Web sur demande..
// // Fonction: titleCase // // Description: Ceci prend une chaîne et la convertit en cas de titre. Il retourne alors la chaîne. // // Entrée: // Val reste de l'URL si donné. // func titleCase (ctx * web.Context, chaîne val) string // // Récupère la chaîne à convertir et la scinde par des espaces. // mots: = strings.Split (ctx.Params ["text"], "") // // Le tableau de mots qui doit toujours être en minuscule, à moins qu'il ne s'agisse du premier mot // du titre. // lower: = […] string "to", "an", "et", "at", "comme", "mais", "par", "pour", "si", "dans", "sur", "ou", "est", "avec", "a", "le", "de", "vs", "vs.", "via", "via", "en" / / // Le tableau de mots qui doit toujours être en majuscule. // upper: = […] string "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "IX", "X", "HTML", "CSS", "AT & T", "PHP" // // Pour chaque mot du titre. // pour i, _: = mots de plage // // Supposons que le mot ne soit pas dans les tableaux en majuscules ou en minuscules. // up: = false low: = false // // Boucle en boucle sur chaque mot du tableau en minuscule. // pour j, _: = plage inférieure si strings.ToLower (mots [i]) = = inférieure [j] // // Elle correspond. Assurez-vous que le mot dans le tableau est le même. // Définit le drapeau comme vrai. // mots [i] = bas [j] bas = vrai // // Boucle à travers chaque mot du tableau majuscule. // pour k, _: = plage upper if strings.ToUpper (words [i]) == upper [k] // // Cela correspond. Assurez-vous que le mot est le tableau est le même. // Définit le drapeau bas sur true. // mots [i] = supérieur [k] up = vrai // // Si le mot ne se trouvait pas dans le tableau supérieur ou inférieur, effectuez une conversion // normale de casse de titre. Cela rend la première lettre majuscule et toutes les // autres lettres minuscules. // if (! up) && (! low) words [i] = strings.Title (words [i]) // // Assurez-vous que le premier mot est un cas de titre! // mots [0] = strings.Title (words [0]) // // Renvoie le titre en joignant tous les mots avec un espace. // retourne des chaînes.Join (mots, "")
Ce code effectue la traduction d’une chaîne donnée au serveur Web en équivalent de casse de titre.
le ctx * web.Context, val string indique au compilateur que cette fonction reçoit deux variables. On est un pointeur vers le web.Context structure de données définie dans le web.go paquet. L'autre est une chaîne. Vous déclarez une entrée de variable par un nom et le type de variable.
le * symbole indique un pointeur. Un pointeur est une adresse vers l'emplacement en mémoire pour la structure de données.. Aller suit C formats de pointeur de données.
La première instruction obtient le paramètre nommé texte que le navigateur passe au serveur et le scinde en espaces. le strings.Split appelle le Divisé fonctionner à l'intérieur du des cordes paquet. Vous pouvez penser à des packages similaires aux objets en C ++. Vous les appelez en utilisant un . entre le nom du paquet et le nom de la fonction.
Dans chaque package, chaque fonction commençant par une lettre majuscule est accessible de l'extérieur du package. Chaque fonction commençant par une lettre minuscule n'est accessible que de l'intérieur du paquet..
Quand le strings.Split fonction divise une chaîne par le séparateur, elle retourne un tableau de chaînes. La sortie est ensuite affectée à la variable mots. Pour créer une nouvelle variable, vous devez utiliser un : = l'assigner. Si vous souhaitez remplacer la même variable par un autre tableau de chaînes, utilisez le = opérateur.
Ensuite, créez deux tableaux pour les différentes listes de mots. inférieur est pour tous les mots minuscules, et plus haut pour tous les mots en majuscule. le […] indique au compilateur d'obtenir le nombre d'assignations à partir des données. De cette façon, vous pouvez ajouter des mots à la liste sans vous inquiéter d'incrémenter le nombre. le chaîne indique au compilateur que chaque entrée du tableau est une chaîne.
j'utilise pour… gamme boucles pour séquencer les tableaux. La première passe en revue chaque mot donné dans l'entrée, tandis que deux autres boucles parcourent chaque dictionnaire de mots pour chaque mot. Il convertit d'abord le mot en minuscule, le compare à chaque mot du mot inférieur dictionnaire. S'il y a correspondance, le mot est mis en minuscules en attribuant la position du mot à la chaîne du dictionnaire. Il fait ensuite exactement la même chose en utilisant le plus haut dictionnaire.
Si le mot était ne pas dans l'un ou l'autre dictionnaire, alors il effectue la cordes.titre fonction à la parole. Cela force la première lettre à être majuscule et tout le reste minuscule.
Enfin, le premier mot a fait n'importe quoi. le Joindre function assemble le tableau de chaînes en utilisant un espace. Il renvoie les résultats à l'appelant de la fonction.
// // Fonction: killServer // // Description: Cette fonction arrêtera le serveur. // func killServer () string os.Exit (0) return ""
le killServer function fait exactement ce que son nom l'indique: tue le serveur Web. Il enveloppe un appel à la os.Exit () fonctionner dans le os paquet.
// // Fonction: main // // Description: Il s'agit de la fonction principale appelée lors de l'exécution du programme. // func main () // // définit l'adresse Web de la fonction de titre sur la fonction appropriée. // web.Get ("/ titlecase /(.*)", titleCase) // // Définit un chemin pour tuer le serveur. // web.Get ("/ kill", killServer) // // envoie la page d'accueil à la fonction appropriée. // web.Get ("/", homePage) // // Exécuter le serveur sur la machine locale au port 9911 // web.Run ("127.0.0.1:9910")
le principale fonction utilise web.Obtenir mettre en place le Obtenir itinéraires de protocole pour la page d'accueil, la page d'arrêt et la routine de conversion de casse de titre. le le web est le web.go paquet que nous avons téléchargé plus tôt. le Obtenir définit un HTML Get demande. Il y a aussi les Mettre, Poster, et Effacer opérateurs que vous pouvez définir.
le web.run instruction démarre le serveur Web sur l'adresse et le port donnés. le web.go le paquet prend le relais à partir de là et appelle vos routines chaque fois que les adresses définies sont demandées.
Maintenant que le programme est terminé, vous devez le compiler. Pour compiler un Aller programme, vous lui dites de construire le fichier avec la fonction principale. Pour compiler ce programme, vous tapez:
allez construire goTitleServer.go
Quand il aura fini, vous aurez goTitleServer dans l'annuaire. C'est le programme complet. Vous pouvez le lancer avec:
./ goTitleServer
Puis ouvrez un navigateur Web pour http://127.0.0.1:9910. Vous devriez voir ceci:
goTitleServer en cours d'exécutionEntrez votre chaîne dans le Texte à corriger: zone de texte, appuyez sur Convertir, et la chaîne convertie apparaîtra dans le Résultats: zone de texte.
Je mets naturellement ce programme dans un Alfred flux de travail. C'est une partie du téléchargement avec le goTitleServer.go fichier. Cela donne un exemple d'utilisation du serveur sans navigateur Web. Il utilise le code bash suivant pour interroger le serveur:
query = 'echo "query" | sed -e 's / / + / g "; curl" http: // localhost: 9910 / titlecase /? text = $ query ";
La première ligne modifie tous les espaces de la question chaîne à +. le boucle commande est une commande unix standard permettant d’obtenir des informations d’un serveur Web. La ligne de commande utilisera le boucle commander une demande d'URL comme la page Web créerait pour lui envoyer. Ce qui est retourné dans les résultats de la conversion de la chaîne en titre.
le Alfred invite Les commandes pour ce flux de travail sont:
tis: lancement-Cette commande lance le serveur. Vous devez lancer le serveur avant de pouvoir convertir.
tcs: convertir-Cette commande prend une chaîne à convertir. Le workflow affiche le résultat dans une notification et le copie dans le presse-papiers..
tcs: tuer-Cette commande tue le serveur web.
Il y a aussi un touche de raccourci que vous devez affecter pour prendre la sélection en cours et l'exécuter via le serveur de cas de titre et la coller à la place.
Maintenant que le système est configuré pour écrire et compiler des applications Web à l'aide de Aller, vous devez commencer à en écrire! Prenez cette base de code et étendez-la à davantage de fonctions de traitement de texte pour en faire un excellent serveur de traitement de texte.