Java 10 oficjalnie dostępna

Java 10 oficjalnie dostępna
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
9

Można już ściągać Javę 10 i pobawić się varami :P
http://openjdk.java.net/jeps/286

Kopiuj
var list = new ArrayList<String>();  // infers ArrayList<String>
var stream = list.stream();          // infers Stream<String>

http://www.oracle.com/technetwork/java/javase/downloads/index.html

Z tego co zrozumiałem, to var nadal będzie można użyć jako nazwy zmiennej, a samo słówko kluczowe jest wrażliwe na wielkość liter, czyli dalej będzie się kompilował taki kod:

Kopiuj
int var = 5;

class Var {
}

ale taki już nie:

Kopiuj
class var {
}

Biada temu kto tak nazywa klasy :]


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 3x, ostatnio: Wibowit
siloam
"Biada temu kto tak nazywa klasy :]" W średniowieczu takim obcinano ręce. Wielce naganna praktyka.
R3id4k
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:175
4

var będzie można używać jeśli typ będzie można wywnioskować z typu po prawej stronie np.: var napis = "Napis";

edytowany 2x, ostatnio: R3id4k
R3id4k
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:175
1

Ja jestem jeszcze za mały w te klocki, ale dla Intelli to ciągle chyba beta <<< nie zabijać posłańca, jak coś namieszał :)
screenshot-20180320210518.png

screenshot-20180320210728.png

edytowany 2x, ostatnio: R3id4k
MA
Przeciez masz "language level" ustawiony na 9, chyba to jest przyczyną?
R3id4k
Oj chyba nie masz aktualnych danych co było z J10 i Intelli 2017 miesiąc temu...
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
0

No najwidoczniej IntelliJ nie ma jeszcze oficjalnego wsparcia dla vara, ale to kwestia czasu.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:9 minut
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
8

BEGIN STARY DZIAD NARZEKA
Fajnie, fajnie. Ale tam gdzie mógłbym użyć javy 10 to już i tak od dawna mam Kotlina, albo jeszcze fajniejszą Scale. Gdzie jest val(!) i do tego spójny z resztą języka ( a nie tylko łatka na lokalne zmienne).
Tam gdzie muszę używać Javy to niestety projekty, gdzie wielce się cieszę, że udało się (nie tak dawno temu) przewalczyć Javę 8.
Szansa, na zmigorwanie do javy 10 będzie za 5-6 lat, a i tak połowa magicznych tooli rozszerzających magię Springa (bo sam spring ma za mało) będzie się walić (jak zwykle).
Btw. wczoraj miałem mini spór z developerem - 20 lat w javie, który pierwszy raz zobaczył map i flatMap na Streamach w javie 8 (mocne). Ło panie jakie to nieczytelne.... na ifach i list.add to by było.
Skończyło sie tak, że zaproponowałem, że jak chce to sam przepisuje na ify.
END STARY DZIAD NARZEKA


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 4x, ostatnio: jarekr000000
Zobacz pozostałe 10 komentarzy
Wibowit
val w Scali to jest taki final var z Javy. W Kotlinie pewnie podobnie. Cudów nie ma - bajtkod nie udostępnia jakichś specjalnych typów zmiennych niedostępnych z poziomu zwykłej Javy.
KA
@karsa ??? WTF? chyba jakies glupoty piszesz. przeciez wiadomo ze chodzi jeedynie o referencje. to czy obiekt jest mutowalny czy nie zalezy od jego implmentacji. val stringbuilder i jazda. na co Ty narzekasz czlowieku. val - niezmienna referencja
KA
ten artykul to taki gowno artykul po ktorym wiekszosc powie - powiedz mi cos czegonie wiem. przeciez to co tam napisali tyczy sie kazdego jezyka a nie tylko kotlina. javowego final, scalowego val czy wszystkich innych. co za poziom
KA
lol, wez sie uspokoj. ? cytuje " smieje sie tylko bo przeczytalem http://blog.danlew.net/2017/05/30/mutable-vals-in-kotlin/ "
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
0

szkoda że nie ma Javy 10 w Oracle PPA, ale napisałem emaila może coś sie dowiem ;]


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
wiciu
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 23 godziny
  • Postów:1205
0

Nawet Javę 11 da się już ściągnąć ;) http://jdk.java.net/11/

Oczywiście early access preview.

edytowany 1x, ostatnio: wiciu
Burdzi0
  • Rejestracja:prawie 9 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Futurama
  • Postów:887
1

Na 9 ledwo rzuciłem okiem, nie zdążyłem się porządnie pobawić, a tu 10. Duże zmiany? Poza var oczywiście :P


Bite my shiny metal ass!
Life throws you an error code like that, you don't have the luxury of a ZnVja2luZw== pop-up explanation *Robię projekty studenckie, pisz priv ;) *
KA
jakie tam var. te var jest niedorobione - poczytaj o tym
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
1

Co 6 miesięcy teraz są nowe wersje, więc wiele nie zdążyli wstawić. W języku żadnych innych zmian już chyba nie ma, ale jest poprawione domyślne GC: http://openjdk.java.net/jeps/307


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
kate87
  • Rejestracja:około 15 lat
  • Ostatnio:około 3 lata
1

A tak oprócz tego można juz dociągnąć bazę oracle 18c;)

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 5 godzin
9

var list = new ArrayList<String>(); // infers ArrayList<String>

hurraa, 10 lat po C#.

</flame>
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:9 minut
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
8

I 20 lat po JavaScript.
Teraz to dopiero będzie dramat - jak przez var jeszcze wiecej ludzi będzie pisać skrypty javy.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
R3id4k
...a może jeszcze dojdzie let z pewnego sadu :)
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
1
Azarien napisał(a):

var list = new ArrayList<String>(); // infers ArrayList<String>

hurraa, 10 lat po C#.

</flame>

Mimo wszystko jest coraz mniej znaczących różnic między typowym kodem w C#, a w Javie. Składnia jest oczywiście trochę inna, ale to już powoli kosmetyka.

Warto przypomnieć, że wielkimi krokami nadchodzi możliwość zrobienia m.in. listy od małego inta ( http://jdk.java.net/valhalla/ ), więc w kulawych porównaniach wydajności C# vs Java, które do tej pory testują narzut boxowania w Javie ta zacznie wychodzić na prowadzenie.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Zobacz pozostałe 2 komentarze
Wibowit
a na co komu unsigned int w korpokodzie? nie ma na co czekać. W Javie 8 są metody typu Integer.unsignedCośtam() jeśli ktoś bardzo chce mieć typy bez znaku osadzone w aktualnie istniejących prymitywach.
Wibowit
Zresztą najbardziej podoba mi się podejście z Rusta, gdzie co prawda są typy bez znaku, ale nie ma numerical tower, więc konwersje są explicite (a co za tym idzie przewidywalne). Dzięki temu, że konwersje są krótkie (zmienna as i32) to jest to czytelne i wygodne. W Javce, C#, C++ itd jest numerical tower i np niejawne rzutowanie inta na floata, które czasem jest stratne. Niejawne rzutowania między typami signed, a unsigned tylko dokładają oliwy do ognia.
R3id4k
A mi Swifta :)
Azarien
To jakiś hak i type-punning a nie prawdziwy uint.
siloam
"Niejawne rzutowania między typami signed, a unsigned tylko dokładają oliwy do ognia." Niejawne rzutowanie w językach statycznie typowanych to imho ogólnie zuo.
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

Przykro mi, ale widzę, że czas przesiadać się na Kotlina / Scalę. A szkoda, bo mogło to mieć ręce i nogi. Teraz jedynie nauswa się pytanie - Scala czy Kotlin.
Scala troche trudniejsza i potworek w niektórych sprawach - Kotlin hmm..... ciężko mi się do czegoś przyczepić - te componentX() przy data class jest kompletnie idiotyczne, ale dobra.


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
Zobacz pozostałe 2 komentarze
jarekr000000
@Shalom: trochę masz racji. Nawet dużo. Ale tak to sprzedaje, niby nic się nie zmieni, będzie po staremu. Mała zmiana w składni. A potem jeb flatMapami aż do porzygu :-) Gateway drug.
rubaszny_karp
Wasi prorocy są fałszywi - tylko Java, sorry
jarekr000000
@rubaszny_karp: Życie jest za krótkie, żeby się rypać z mutowalnymi listami
rubaszny_karp
nie kocha się za coś a pomimo czegoś #coachJanush
jarekr000000
U mnie to nie miłość, a zwykła prostytucja. Java - tylko dla kasy.
1

Jeju jeszcze nie zdążyłem zostać programistą java a już trzeba sie przesiadać na kotlin/scala? Czy bootcampy nadążą za zmianami ?

WhiteLightning
Nie ma jak Bash, tam sie nic nie zmienia :)
zyxist
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 6 lat
  • Postów:101
3

Szczerze mówiąc nie rozumiem narzekania na var. Nie było - źle, bo nie ma. Jest - źle, bo jest. Tak to wychodzi.

Brak val spowodowany jest tym, że Java idzie w kierunku zmiennych "effectively final" - pisząc z użyciem lambd, i tak kompilator nie skompiluje kodu, który będzie zmieniał wartość zmiennej var, jeśli ta jest używana w lambdach. W kolejnych wersjach języka var będzie rozszerzany (w Javie 11 - możliwość używania w argumentach lambd).


Wibowit
zamiast val można chyba użyć final var, aczkolwiek wygląda to średnio.
KA
ja prdl final var . czy wy to czujecie ten stan w którym Java zaczyna iść śladami javascript albo nawet gorzej... śladami C++. coraz trudniejsza i coraz głupsze konstrukcje. Uczcie sie Kotlina póki czas serio
zyxist
http://openjdk.java.net/jeps/286 <- w sekcji "Scope Choices" jest trochę tekstu na temat braku "val".
siloam
chcieli zaimplementować "total war", zamiast "final var", ale im nie wyszło. Już dawno powinien być tam const. JS powoli się zamienia w porządny język a tutaj powstają jakieś potworki.
Leroy
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:107
1

Dalej nie rozumiem dlaczego ograniczyli sie do var i nie dali val, zaden argument nie wydaje mi sie tu sensowny.
Scala czeka; Gdyby tylko nie te biblioteki naszpikowane implicitami... Same implicity i jezyk bardzo lubie, ale jak patrze na te biblioteki, ktore sa tym nafaszerowane do pozygu i zamiast annotation-hell mamy implicit-hell to sie odechciewa, chociaz i tak lepiej niech to dziala w compile-time niz run-time.

@Edit
btw. z tego co czytam tak luzno (moge sie mylic) ale niedlugo (2020?...) w 'Project Valhalla' generyki maja byc 'reified'. Czy to czasem nie zboostuje Scala'owego type system'u, ktory aktualnie przez to cierpi, jeszcze mocniej? :) Z tego co sie orientuje nie da sie tego zaimplementowac w jezyku, tylko w JVM wiec Scala tez podlapie.

edytowany 4x, ostatnio: Leroy
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
2

btw. z tego co czytam tak luzno (moge sie mylic) ale niedlugo (2020?...) w 'Project Valhalla' generyki maja byc 'reified'.

Właśnie mają nie być 'reified'. Jak na razie jedynym językiem z 'reified generics' jest C# (i inne z .NETu). To co jest w miarę potwierdzone to:

  • możliwość tworzenia klas wartościowych (value classes)
  • możliwość parametryzowania generyków prymitywami i klasami wartościowymi

Reified generics nie są potrzebne do parametryzowania generyków klasami wartościowymi. To mit powtarzany przez C#-owców. Reified generics są głównie po to, by mieć jeszcze bardziej szalone zabawy z refleksją. Natomiast klasy wartościowe, tablice takich klas i generyki korzystające z takich klas służą polepszeniu wydajności i oszczędności pamięci.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Zobacz pozostałe 3 komentarze
piotrpo
Tak jest to mocno ograniczone (faktycznie istnieje tylko w funkcjach inline), ale da się bez większego problemu utworzyć obiekt typu specyficznego.
Wibowit
W Javce można to załatwić za pomocą ClassName::new + method(Supplier<ClassName> factory) i dodatkowo masz sprawdzanie na etapie kompilacji czy masz bezparametrowy konstruktor.
Wibowit
dodałem jako komentarz do gista
1

@karolinaa Java tymi zmianami w stylu JavaScript co pół roku dla mnie umarła, teraz będę uczył się Rust, język najbardziej lubiany na Stackover. W przyszłości zapewne będą w nim pisane sterowniki i programy pod przyszłe nowoczesne systemy RedoxOS, FuschiaOS.

jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
0

Jak dla mnie brak vara był największą bolączką Javy. Tak więc cieszę się, że Oracle jest ze mną.


Przeważnie ignoruję niezarejestrowanych użytkowników.
0

To pewnie gettery i settery już są? Czy dalej lombkm albo pisanie metod

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:9 minut
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
0

Jakie gettery i settery? To chyba tylko w starych projektach. _.copy(...) i value class nadal bardzo brakuje.


jeden i pół terabajta powinno wystarczyć każdemu
1

No takie jak w C# są. Głupie pytanie, wiesz co to getter i setter?

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:9 minut
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
2

Tak. Tylko w javie nie są za bardzo potrzebne. No chyba, że ktoś w starych frameworkach sie grzebie.


jeden i pół terabajta powinno wystarczyć każdemu
SP
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 2 lata
  • Postów:127
0

W sumie taką samą konwencją jak metody get i set mogłoby być poprzedzanie publicznych pól np przedrostkiem "attr".

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
0

Skoro jest Lombok to po co dalej coś kombinować? Można by co najwyżej dać osobną kontrolę nad zapisem i odczytem gołego pola, tzn z zewnątrz tylko do odczytu, a z wewnątrz można robic cokolwiek.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
J1
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 2 lata
  • Postów:224
0

Co do setterów i getterów to ma być nowy pojemnik danych datum, którego będzie można używać w zamian za klasę. Przykładowo

Kopiuj
datum Punkt(
  int x;
  int y;
}

równoważne jest z tym

Kopiuj
public class Point {
    private int x;
    private int y;
     
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }
}

Kolejne zmiany to np. instrukcja swich będzie mogła przyjmować obiekty, a nawet zwracać wartość. Więcej do poczytania tutaj https://javastart.pl/b/java/co-nowego-w-javie/.


P7
2
Wibowit napisał(a):

Skoro jest Lombok to po co dalej coś kombinować? Można by co najwyżej dać osobną kontrolę nad zapisem i odczytem gołego pola, tzn z zewnątrz tylko do odczytu, a z wewnątrz można robic cokolwiek.

Jest dokładnie odwrotnie. Trzeba kombinować z Lombokiem, bo sama Java jest ułomna. Poprzestawiało ci się coś.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 minut
0

Boisz się używać bibliotek?


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Dla mnie jako fana @Value pattern to te settery są ułomne. Generalnie nie przepadam za mutowalnymi DTO ;)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)