Pokud používáte dva monitory, je možné, že vás obtěžuje přichytávání kurzoru myši na listě pro spouštění programů (launchbar). Projevuje se to tak, že pokud přejíždíte na druhý monitor, kurzor zůstane přichycen na liště a neobjeví se na druhém monitoru. Toto chování lze změnit v Nastavení systému -> Displeje -> a vypnout volbu Přichytávat na hranách (Obecné volby):
Měsíc: Leden 2018
Začínáme programovat v Go: 4. díl – proměnné
V tomto díle tutoriálu se podíváme na proměnné. Proměnná je vlastně pojmenování hodnoty. Následně pak pracujeme s tímto pojmenováním (proměnnou). Proměnná se vytváří (deklaruje) pomocí klíčového slova var. Jelikož Go je typový jazyk, proměnné jsou určitého typu. Doposud, aniž jsme si to uvědomovali, jsme používali datový typ string, což je textový řetězec. Cokoliv uzavřené mezi dvě dvojité uvozovky je řetězec. V předchozích dílech jsme volali metodu Println z balíčku fmt a předávali jí string (textový řetězec).
Zde je ukázka, jak se proměnné typu string vytváří.
var jmeno string = "John" var prijmeni string = "Smith"
Vytváříme dvě proměnné. První je proměnná jmeno, obsahující textový řetězec (je typu string) s hodnotou John. Druhá proměnná je prijmeni, je také datového typu string a obsahuje hodnotu Smith.
fmt.Println(jmeno) fmt.Println(primeni)
Zobrazíme hodnoty obou proměnných. Použijeme-li proměnnou, použije se její hodnota. Jak jsme uvedli výše, proměnná je pojmenovaná hodnota.
Zde je celý program
package main
import "fmt"
func main() {
var name string = "John"
var surname string = "Smith"
fmt.Println(name)
fmt.Println(surname)
}
Výsledek
John Smith
Úkol
Zkuste si vytvořit vlastní program, který bude mít několik textových proměnných a ty vypíše do konzole.
Možné řešení
package main
import "fmt"
func main() {
var w = "white"
var b = "blue"
var r = "red"
fmt.Println(w)
fmt.Println(b)
fmt.Println(r)
}
Ruby – práce se soubory (txt a csv)
Začneme tím nejjednoduším a postupně budeme přidávat
Než začneme s čtením zkontrolujeme si, zda daný soubor opravdu existuje a v případě, že nikoliv, tak program ukončíme
unless File.exist?("jmeno souboru")
puts "Nemam soubor"
exit
end
1 – Načtení a zápis do .txt
Načtení je v případě .txt super jednoduché, stejně tak zápis. Níže můžete vidět code pro čtení. Nejdříve načteme soubor jako takový a následně zprácováváme jednotlivé řádky. Ukázka zahrnuje i použití příkazu „.strip“, který oseká text o bílé znaky a následně příkaz „.split(“)“ rozseká získaný řetězec na jednotlivé chary a ty následně pomocí příkazu << pošle do pole.
File.open("jmeno souboru.txt", "r") do |soubor|
soubor.each_line do |radek|
radek = radek.strip
GLOB_POLE << radek.split('')
end
end
2 – Zápis používá stejnou logiku jako čtení. Liší se pouze zámněně „r“ za „w“ a tím, že již nenačítáme soubor jako takový.
Robot je jeméno třídy, v jejímž rámci voláme třídní proměnnou roboti. Roboti představují pole instancí třídy Robot, skrz které iterujeme a do každého řádku vypisujeme základní infomrace, které získáváme z jednotlivých instancí
File.open("jmeno_souboru.txt", "w") do |line|
Robot.roboti.each do |robot|
line.puts "#{robot.jmeno}(#{robot.pozice[0]}x#{robot.pozice[1]}):#{robot.stav}"
end
end
3 – V zásadě stejnou konstukci použijeme pro práci s .csv soubory. I tady rozlišujeme mezi operací číst – písmeno r – a operací psát – písmeno w. A co je důležité, musíme si vyžádat knihovnu CSV a to náledujícím způsobem
require "csv"
Načtení pak provedeme následujícím způsobem
CSV.open("jmeno_souboru.csv", "r") do |soubor|
soubor.each do |line|
GLOB_POLE << Robot.new(line[0], line[1])
end
end
4 – Zápis do .csv je opět triviální.
CSV.open("jmeno_souboru.csv", "w") do |soubor|
Robot.roboti.each do |robot|
soubor << "#{robot.jmeno}(#{robot.pozice[0]}x#{robot.pozice[1]}):#{robot.stav}"
end
end
V dalším článku se pak podíváme na xml a json.
Spring – XML konfigurační soubor a XML konfigurace
Spring má dva hlavní způsoby konfigurace (XML a Javu), ale tři hlavní přístupy ke konfiguraci a každý z těchto přístupů má několik názvů.
- Konfigurace využívající XML (XML based configuration)
- XML konfigurační soubor a XML konfigurace (XML config and XML-driven/based configuration)
- XML konfigurační soubor a konfigurace anotacemi (XML config and annotation-driven/based configuration)
- Konfigurace využívající Javu
- Java konfigurační soubor a konfigurace anotacemi (Java config and annotation-driven/based configuration | Java based configuration | JavaConfig)
XML konfigurační soubor a XML konfigurace
V tomto příspěvku se podíváme na XML konfigurační soubor a XML konfigurace. V tomto případě se používá pro konfiguraci XML soubor (beans.xml), ve kterém jsou definovány beany.
Naše jednoduchá aplikace bude mít dvě rozhraní MessageService a SecurityService. Rozhraní MessageService bude mít metodu String getMessage() a SecurityService String encode(String text). Funkčnost aplikace je tato: nejdříve získá řetězec (metoda getMessage()) a ten potom zašifruje (metoda encode()). Vlastní způsob šifrování, implementovaný v SecurityServiceImpl, bude triviální. Všechny písmena e v textu změníme za € a všechna písmena s za §.
Začínáme programovat v Go: 3 díl, další program
V tomto díle tutoriálu si vytvoříme další jednoduchý prográmek a znovu si jej popíšeme. Náš program bude vypisovat informace a bude se jmenovat info.go. V naší pracovní ploše (workspace) si vytvoříme adresář programs (do něj nyní budeme dávat naše krátké prográmky) a v něm soubor info.go (název mého workspace je vitfo.cz).
go
└───src
└───vitfo.cz
└───programs
info.go
Obsah souboru info.go
package main
import "fmt"
/* Prints info */
func main() {
fmt.Println("name: Jonh")
fmt.Println("surname: Smith")
fmt.Println("year of birth: 1999")
}
Popis
Každý go program se skládá z balíčků. Program (běh programu) začíná v balíčku main a v jeho hlavní metodě, která se také jmenuje main.
Pokud program potřebuje něco, co už je někde vytvořeno, importuje si balíček, ve kterém se daná funkcionalita nachází, pomocí klíčového slova import.
Z balíčků, které importujeme, můžeme používate pouze jména (funkce, proměnné), které začínají velkým písmenem. Pokud jsou v importovaném balíčku funkce a proměnné začínající na malé písmeno, nelze je použít (jsou používané jen v daném balíčku a nejsou přístupné zvenku). V našem případě to znamená, že balíček fmt obsahuje funkci s velkým počátečním písmenem Println.
Příkazy v některých programovacích jazycích se musí ukončovat speciálním znakem (velmi často je to středník). V go stačí konec rádky.
Komentáře se vkládají mezi /* */. Komentáře nemají vliv na program a jeho funkčnost, ale dělají program čitelnější. Komentáře jsou informace pro nás nebo jiného programátora.
Výsledek
Program spustíme go run info.go
C:\Users\vitfo\go\src\vitfo.cz\programs>go run info.go name: Jonh surname: Smith year of birth: 1999
Úkol
Rozšiřte aktuální prográmek tak, aby vypisoval ještě další informace (oblíbenou barvu, místo narození, …)
Možné řešení:
package main
import "fmt"
/* Prints info */
func main() {
fmt.Println("name: Jonh")
fmt.Println("surname: Smith")
fmt.Println("year of birth: 1999")
fmt.Println("place of birth: Czech Republic")
fmt.Println("favourite color: blue")
}
