Pisanie wiersza obliczeń
Ta strona opisuje podstawy każdego bloku obliczeń: odczytywanie wiersza, komentarze obok działań, nazywanie wartości i ponowne ich używanie oraz uzależnianie wiersza od warunku. Zacznij tutaj, jeśli obliczenia w Varlig są dla Ciebie nowe, i wróć, gdy nazwa lub komentarz nie zachowuje się zgodnie z oczekiwaniem.
Jedno wyrażenie w wierszu
Obliczenia znajdują się w bloku obliczeń wewnątrz notatki. Wpisz ogranicznik ```calc albo naciśnij ⌘Y, aby go wstawić. Każdy wiersz bloku jest jednym obliczeniem, a jego wynik pojawia się obok.
£3.40 * 5 daje £17.0045 min + 1 hour 20 min daje 2 hours 5 min1.5 litres in ml daje 1,500 mLPuste wiersze i wiersze komentarzy nie mają wyniku, więc możesz dzielić blok odstępami i na bieżąco go opisywać.
Varlig najpierw próbuje odczytać cały wiersz jako matematykę, w tym zwykłe wyrażenia takie jak £45 with 20% VAT. Jeśli to się nie uda, pomija nierozpoznane słowa, więc 5 apples + 3 oranges nadal daje 8. Przydaje się to do szybkich notatek, ale opis może pokrywać się z wyrażeniem lub nazwą jednostki. Jeśli chcesz określić przeznaczenie wiersza, użyj komentarza lub etykiety opisanych poniżej. Szczegóły znajdziesz w Jak Varlig odczytuje wyrażenie.
Słowo w miejscu oczekiwanej wartości powoduje błąd wskazujący to słowo zamiast błędnego wyniku. Komunikat sugeruje najbliższą zdefiniowaną nazwę:
rent = £1,150rnt + £200 daje Unsupported: unrecognized calculation at "rnt"; did you mean "rent"?To samo dotyczy nazw z cyframi lub podkreśleniami, takich jak rent2 lub rent_2. Nigdy nie są pomijane jako opis ani odczytywane jako zawarta w nich liczba; nawiasy, wywołanie funkcji ani konwersja też ich nie ukrywają. Cyfry są dozwolone w etykiecie, więc opis wiersza umieść tam:
rent = £1,150rent2 + £200 daje Unsupported: unrecognized calculation at "rent2"; did you mean "rent"?(rnt + £200) * 2 daje Unsupported: unrecognized calculation at "rnt"; did you mean "rent"?Flat 2: rent + £200 daje £1,350.00Wiersze zaczynające się od wypunktowania
Wypunktowanie na początku wiersza oznacza pozycję listy zakupów. Opis przed kwotą jest pomijany, a wiersz nadal jest obliczany. Użyj -, *, •, +, – lub — i spacji:
- flowers 1,200 daje 1,200* coffee $4.50 daje $4.50- 12 mugs daje 12- 6 bananas @ 18p daje £1.08- 500g pasta 3 packs at £1.10 each daje £3.30Kreska przed samą wartością nadal jest minusem, więc - 1,200 daje -1,200, a - 12 kg daje -12 kg. Dla pomiaru na liście rozpocznij wiersz od * lub •, które zawsze są znakami wypunktowania.
Słowa obok kwoty
Opis ułatwia odczyt wiersza i nigdy nie zmienia liczby. Słowa połączone przez +, & lub per należą do opisu, nie do działania; minus przylegający do wartości należy do niej, a numer identyfikacyjny po słowie nie bierze udziału w obliczeniu:
basin + pedestal £145 daje £145.00food cost per head £14.20 daje £14.20milk, bread, eggs £12.40 daje £12.40Netflix -£10.99 daje -£10.99DIRECT DEBIT REF 4471 £62.40 daje £62.40Invoice #123: £250 daje £250.00double cream 600 mL daje 600 mLchlorine 3 ppm daje 3 ppmt-shirt £12 daje £12.00on the day 60 at £28 daje £1,680.00Obejmuje to większość zapisów z wklejonego wyciągu, potwierdzenia zamówienia lub listy części: wiersze wielkimi literami, rzeczy oddzielone przecinkami, nazwy z łącznikami i opisy zaczynające się od słów znanych Varlig, takich jak double, per lub on the day.
Etykieta numerująca wiersz, taka jak Year 2, Room 12 lub ISA 2026, albo okres z rokiem, jak Q4 2026, July 2026 lub week 40 2027, również należy do opisu niezależnie od położenia w wierszu, jeśli po niej występuje wartość: kwota z walutą, liczba z jednostką lub procentem albo samodzielna liczba przed następnym operatorem. Numer z etykiety nigdy nie jest dodawany:
Year 1 £5,000 + Year 2 £6,000 daje £11,000.00Year 1 5,000 + Year 2 6,000 daje 11,000ISA 2025 £20,000 + ISA 2026 £20,000 daje £40,000.00Room 12 £40 + Room 14 £50 daje £90.00Q3 2026 £5,000 + Q4 2026 £6,000 daje £11,000.00July 2026 £500 + August 2026 £600 daje £1,100.00Pojedyncza liczba po słowie jest wartością, jak w rent 1200 + 300, a liczba sztuk nadal liczy sztuki, jak w tickets 2 £40 each. Jednostka taka jak hour, week lub day mierzy liczbę przed nią, więc zapisana przed liczbą nazywa wiersz jak inne słowo: hour 2 to druga godzina, nigdy godzina i dwie minuty. Gdy dalej występuje waluta, jednostka lub procent, spacja po numerze etykiety rozpoczyna wartość, więc Week 2 150 hours oznacza 150 godzin, nie 2150:
hour 1 £40 + hour 2 £50 daje £90.00hours 8 + hours 7 daje 15Week 2 150 hours + Week 3 160 hours daje 310 hoursKomentarze
Komentarz to tekst ignorowany przez kalkulator. Można go zapisać na cztery sposoby:
| Postać | Przykład | Pomijana treść |
|---|---|---|
| Komentarz ze znakiem # | rent * 12 # per year lub # Budget |
Wszystko od # ze spacją do końca wiersza |
| Komentarz z ukośnikami | rent * 12 // per year |
Wszystko od // do końca wiersza |
| Dopisek w cudzysłowie | "flat whites" £3.40 * 5 |
Wszystko w podwójnych cudzysłowach, w dowolnym miejscu wiersza |
| Dopisek w nawiasach | $999 (for iPhone 16) |
Słowa w nawiasach, w dowolnym miejscu wiersza |
# Weekly shopmilk = £1.45bread = £1.20 // sourdougheggs = £2.30 "free range"milk + bread + eggs # without the extras daje £4.95Znak hash lub zapis z ukośnikami zamienia resztę wiersza w komentarz, natomiast cudzysłowy i nawiasy mogą występować w środku. Dzięki temu możesz opisać przeznaczenie kwoty i kontynuować działanie:
$999 (for iPhone 16) daje $999.00laptop £899 (refurbished) + £49 case daje £948.00Boing "747" is $386.8M daje $386.8MCudzysłowy są bezpieczniejszym wyborem wokół tekstu przypominającego liczbę — dlatego powyższe 747 nie uczestniczy w obliczeniu. Nawiasy zawierające wyłącznie liczbę są częścią arytmetyki, a nie komentarzem, ponieważ liczba obok nawiasu oznacza mnożenie:
$999 (3) daje $2,997.00Zapisz więc liczbę sztuk poza nawiasem albo dopisz, co liczysz, jak w $999 (3 handsets). Wszystko poza samą liczbą pozostaje komentarzem, w tym słowo z łącznikiem lub procent:
£134 (25% discount already applied) daje £134.00£10 (mother-in-law) daje £10.00Wiersz zaczynający się od znaku hash i spacji jest komentarzem od początku do końca, więc może służyć jako nagłówek w bloku.
To spacja sprawia, że hash rozpoczyna komentarz. # połączony ze słowem, jak #food, jest tagiem: oznacza wiersz, nie bierze udziału w obliczeniu i pozwala zsumować wszystkie wiersze z tym tagiem w dowolnym miejscu bloku.
£12.50 lunch #food daje £12.50£8 coffee #food daje £8.00total of #food daje £20.50Hash z następującymi po nim cyframi nie jest ani komentarzem, ani tagiem: numeruje przedmiot wiersza i nie bierze udziału w matematyce, więc faktury, zamówienia i numery części są odczytywane zgodnie z zapisem.
Invoice #123: £250 daje £250.00part #4 weighs 20 g daje 20 gEtykiety
Etykieta to kilka słów zakończonych dwukropkiem i spacją na początku wiersza. Opisuje wynik, nie uczestnicząc w obliczeniu:
rent = £1,250bills = £180Rent and bills: rent + bills daje £1,430.00Café bill: £12.50 + £4 daje £16.50Etykiety mogą zawierać litery, także z akcentami, cyfry, spacje i podkreślenia, jak Flat 2: lub Q3 rent:.
Etykieta nie tworzy nazwy. Po Rent and bills: rent + bills nie istnieje wartość o nazwie Rent and bills. Użyj =, jeśli chcesz ponownie wykorzystać wynik. Unikaj też etykiety przed przypisaniem: Housing: rent = £1,250 pokazuje kwotę, ale rent nie zostaje zapisane.
Przypisanie
= nadaje wartości nazwę. Wiersz pokazuje również samą wartość, więc możesz ją od razu sprawdzić.
price = £85 daje £85.00price + 20% daje £102.00Aby zaktualizować już zdefiniowaną nazwę, użyj +=, -=, *= lub /=:
holiday fund = £400holiday fund += £150 daje £550.00holiday fund -= £85 daje £465.00servings = 4servings *= 3 daje 12flour = 750 gflour /= 3 daje 250 gJeśli prawa strona powoduje błąd, nazwa przechowuje ten błąd, a każdy korzystający z niej wiersz pokazuje go do czasu ponownego przypisania:
guests = 0per head = £120 / guests daje Error: divide by zeroper head + £5 daje Error: divide by zeroZapisywana wartość może mieć opis tak samo jak w samodzielnym wierszu. Prawa strona nie może jednak składać się z przypadkowych słów wokół samej nazwy, ponieważ nie wiadomo wtedy, co zapisać. Po zdefiniowaniu rent = £1,150 zapis x = spent excl rent zgłasza spent excl rent, zamiast po cichu zapisywać czynsz.
paid rent = £1,150daily spend = paid rent / 16 daje £71.88Nazwy
Nazwy mogą składać się z kilku słów i zawierać litery z akcentami, litery spoza alfabetu łacińskiego, cyfry, podkreślenia oraz emoji:
flat white = £3.40flat white * 5 daje £17.00crème brûlée = £6.50crème brûlée * 2 daje £13.00🍎 price = £0.45🍎 price * 6 daje £2.70q1 sales = £12,400q2 sales = £14,100q1 sales + q2 sales daje £26,500.00bedroom_width = 3.2 mbedroom_width * 2 daje 6.4 mNazwa może zawierać słowa używane przez Varlig w innych miejscach, takie jak to, in lub needed, a także pokrywać się z nazwą wbudowanej funkcji, takiej jak floor. Gdy używasz jej jako wartości, Varlig odczytuje Twoją wartość:
time to work = 25 mintime to work * 10 daje 4 hours 10 minpaint needed = 12.44 Lpaint needed to 1 dp daje 12.4 Lfloor = 12 m²floor * 2 daje 24 m²floor(3.7) daje 3Z następującymi po niej nawiasami, jak w floor(3.7), funkcja nadal wykonuje swoje zwykłe działanie.
Nazwa może nawet kończyć się liczebnikiem zapisanym słownie, dzięki czemu cena wygląda tak jak w menu:
table for four = £96table for four / 4 daje £24.00Gdy dwie nazwy zaczynają się tak samo, pierwszeństwo ma dłuższa, więc nazwa z numerem jest odczytywana w całości:
batch = £8.01batch 2 = £8.21batch 2 - batch daje £0.20W nazwach wielkość liter ma znaczenie: eggs i Eggs to dwie różne wartości.
Jeśli nazwa ma być dostępna w każdej notatce, na przykład stawka godzinowa lub podatkowa, dodaj ją do globalnych definicji w Settings, zamiast powtarzać w każdej notatce.
Nazwy kolidujące ze słowami wbudowanymi
Zdefiniowana nazwa ma pierwszeństwo przed innymi elementami o takim samym zapisie, na przykład jednostką, liczebnikiem lub stałą. Zwykłe nazwy nadal nie zmieniają jednak wielkości. Liczba bezpośrednio przed nazwą w liczbie mnogiej lub jednostką liczy te rzeczy, a procent przed tip lub tax opisuje napiwek lub podatek. Wartości nazwane hours, nights lub tip nie zmieniają więc tych wierszy:
rate = £14 / hourhours = 7.5rate * 7.5 hours daje £105.00nights = 14£118/night * 14 nights daje £1,652.00tip = $12.69$84.60 + 18% tip daje $99.83Najedź wskaźnikiem na słowo, aby sprawdzić interpretację Varlig. Przy rate * 7.5 hours podpowiedź mówi „Counts hours here, not the variable hours = 7.5.” — chodzi o liczbę godzin, nie zmienną. W innych miejscach wiersza nazwa oznacza Twoją wartość, jak w split £90 among people.
Konwersja działa podobnie: po in, to lub as jednostka ma pierwszeństwo przed nazwą zawierającą liczbę bez jednostki, więc nazwana liczba nie blokuje przeliczenia na tę jednostkę. Przy miles = 12 zapis 20 km in miles nadal daje 12,4274238447 mi. Nazwa przed jednostką skaluje ją zamiast wskazywać cel, więc 15.2 m in scale miles przy scale = 76.2 zgłasza Unsupported: conversion to scale miles, zamiast wybierać jedną z dwóch interpretacji.
Jednostka zapisana jako stawka, bez spacji wokół ukośnika, jest odczytywana jako ta jednostka niezależnie od innych zastosowań jej liter. Gęstość lub prędkość skopiowana z arkusza danych zachowuje więc swoje znaczenie:
g = 9.81 m/s²2 g daje 19.62 m/s²2.7 g/cm³ daje 2.7 g/cm³50 kg * g daje 490.5 NW kilku przypadkach własna definicja rzeczywiście zmienia znaczenie wiersza:
- Pojedyncza litera zawsze oznacza Twoją wartość, więc po
m = 3zapis2 mdaje 6, a nie dwa metry. - Liczba przed nazwą w liczbie pojedynczej mnoży ją, więc po
width = 3zapis2 widthdaje 6. To samo dotyczy jednoliterowej nazwy przed jednostką lub operatorem. Podpowiedź wyjaśnia to i sugeruje zapis2 * widthdla jednoznaczności. - Liczebniki i stałe też są zastępowane: po
one = 7wyrażenieone times twodaje 14.
Dwa nawyki pozwalają uniknąć większości niespodzianek:
- Nie używaj samych symboli jednostek jako nazw, na przykład
m,s,hlubin, ani nazw stałych i liczebników, takich jakpi,onelubi. - Wybieraj opisowe nazwy, takie jak
hours worked,day ratelubrun distance.
Kolejność w dokumencie
Każdy wiersz widzi nazwy zdefiniowane nad nim. Nazwy przechodzą również do kolejnych bloków obliczeń w tej samej notatce, więc dane wejściowe możesz określić raz i używać ich niżej.
price = £20quantity = 3cost = price * quantity daje £60.00price = £25price * quantity daje £75.00cost daje £60.00Ponowne zdefiniowanie price nie zmienia wcześniejszego wiersza cost: cost obliczono z ceną obowiązującą w tamtym miejscu. Aby zmienić wynik wcześniejszego obliczenia, edytuj wiersz definiujący jego dane wejściowe.
Wynik z poprzedniego wiersza
prev to wynik najbliższego wiersza powyżej, a ans oznacza to samo, chyba że przypisano już wartość do nazwy ans. Przydają się do szybkiego dalszego obliczenia:
£1,250 * 12 daje £15,000.00prev / 52 daje £288.46ans + £20 daje £308.46Aby zsumować grupę wierszy, wpisz sum lub total w osobnym wierszu. Zobacz Sumowanie poprzednich wierszy.
Odwołanie do wiersza po numerze
line1, line2 itd. odwołują się do obliczenia według jego pozycji w notatce, licząc kolejno wszystkie bloki obliczeń:
price = £100 daje £100.00line1 * 2 daje £200.00Odwołanie pozostaje połączone z wierszem, na który wskazuje. Wstaw wiersz nad nim lub przenieś wiersze za pomocą Format › Move Line Up i Move Line Down, a wynik nadal będzie używał tego samego wiersza. Varlig zmieni numer w tekście jako osobny krok cofania, tak aby zapis odpowiadał obliczeniu.
Jeśli usuniesz wiersz wskazywany przez odwołanie, pojawi się Error: line2 refers to a deleted line, zamiast cichego użycia innej liczby. Cofnięcie przywraca oba elementy.
Kopiowanie i wklejanie zachowuje odwołania
Po skopiowaniu lub wycięciu wierszy obliczeń i ich wklejeniu odwołania line2 i ↑ nadal odczytują te same wiersze co wcześniej:
- Odwołanie do skopiowanego wiersza podąża za kopią, z numerem dostosowanym do jej nowego miejsca.
- Odwołanie do wiersza, którego nie skopiowano, nadal odczytuje ten wiersz po wklejeniu w tej samej notatce.
- Po wklejeniu do innej notatki odwołanie staje się nazwą definiowaną przez tamten wiersz, na przykład
rentdlarent = $1,200. Zadziała, gdy notatka zdefiniuje tę nazwę lub zaimportuje ją. Wiersz bez nazwy staje się odwołaniem takim jakline2_of_Budget, które zgłasza tę sytuację do czasu zastąpienia go:
5 + line2_of_Budget daje Unsupported: line2_of_Budget is a line of another noteSchowek zawiera tylko zaznaczony tekst, więc inne aplikacje otrzymują dokładnie to samo, a wklejenie jest jednym krokiem cofania. Wiersze skopiowane z notatki chronionej hasłem są wklejane w zapisanej postaci.
Zamiana tekstu w obliczenie
Masz wklejoną fakturę lub kilka wierszy do zsumowania? Zaznacz je i wybierz Format › Convert to Calculation Block albo naciśnij ⌘Y przy zaznaczeniu. Varlig otoczy je ogranicznikami calc w jednej zmianie możliwej do cofnięcia, a wyniki pojawią się obok.
Gdy nic nie jest zaznaczone, ⌘Y wstawia pusty blok. Tekst poza blokiem nigdy nie jest obliczany, więc wklejony e-mail zachowuje liczby, daty i numery faktur dokładnie w podanej postaci.
Resetowanie zakresu
Wiersz zawierający wyłącznie --- rozpoczyna nowy zakres. Nazwy, własne jednostki i własne funkcje zdefiniowane powyżej nie są już widoczne poniżej. Przydaje się to do porównywania dwóch scenariuszy w jednej notatce bez mieszania ich wartości.
# Option A: the flat in townrent = £1,250travel = £60rent + travel daje £1,310.00---# Option B: the flat further outrent = £980travel = £210rent + travel daje £1,190.00Poniżej --- trzeba ponownie zdefiniować travel. Jeśli o tym zapomnisz, używający go wiersz nie będzie miał do czego się odwołać.
Wyrażenia warunkowe
if … then … else … wybiera jedną z dwóch wartości na podstawie porównania. Możesz użyć go samodzielnie lub przypisać wynik do nazwy:
basket = £34.50delivery = if basket >= £40 then £0 else £3.99 daje £3.99basket + delivery daje £38.49Połącz kilka else if, jeśli potrzebujesz więcej niż dwóch wyników:
basket = £34.50if basket < £20 then £4.99 else if basket < £40 then £2.99 else £0 daje £2.99Obliczana jest tylko wybrana gałąź, więc druga może zawierać coś, co spowodowałoby błąd:
guests = 0if guests > 0 then £120 / guests else £0 daje £0.00if i unless po wartości
Warunek można też umieścić po wartości. value if condition pokazuje wartość, gdy warunek jest spełniony, a value unless condition — gdy nie jest spełniony. W przeciwnym przypadku wiersz nie pokazuje niczego.
basket = £34.50£3.99 if basket < £40 daje £3.99£3.99 unless basket >= £40 daje £3.99Wartość może być tekstem w podwójnych cudzysłowach. Wtedy kontrola staje się komunikatem o stanie, który poza odpowiednim warunkiem pozostaje pusty:
conversion = 0.667%"on target" if conversion > 0.5% daje on targetPrzypisanie w wyrażeniu warunkowym
Obie gałęzie mogą przypisywać wartość do tej samej nazwy:
basket = £34.50if basket >= £40 then shipping = £0 else shipping = £3.99 daje £3.99shipping daje £3.99Jeśli jest tylko gałąź then, przypisanie następuje po spełnieniu warunku; w przeciwnym razie nazwa zachowuje starą wartość:
basket = £34.50points = 0if basket > £30 then points = 50 daje 50points daje 50Porównania takie jak >= i operatory && oraz || opisano w Operatory, porównania i warunki.
Przykład całościowy
Oto niewielka faktura freelancera, zapisana tak, jak można ją prowadzić w notatce:
# March invoiceday rate = £420days worked = 6travel = £86.40 // train faresfees = day rate * days worked daje £2,520.00subtotal = fees + travel daje £2,606.40vat registered = truevat = if vat registered then subtotal * 20% else £0 daje £521.28Total due: subtotal + vat daje £3,127.68Każda dana wejściowa ma nazwę, więc w kolejnym miesiącu zmieniasz tylko days worked i travel, a reszta faktury aktualizuje się automatycznie. Komentarze i etykieta ułatwiają odczyt bloku, a warunek pozwala używać tej samej notatki niezależnie od naliczania VAT.